代码随想录算法训练营第四天|24. 两两交换链表中的节点
链表没有学好,写了一小时才写出来
有几个心得:
1. 不存在指针被复制之后就是地址完全被拷贝了,考虑的有点多
2. current.next = right这句话完全忘记加了,debug的主要时间都在这,导致一直出的[1,3],没有考虑交换之后,前一个结点的指向也要改变。
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]:
        dummyhead = ListNode(next = head)
        current = dummyhead
        if current.next == None:
            return current.next
        
        while current.next != None:
            if current.next.next:
                left = current.next
                right = current.next.next
                if current == dummyhead:
                    dummyhead.next = current.next
                print("left.val,",left.val)
                print("right.val,",right.val)
                print("current.val,",current.val)
                left.next = right.next
                # print("current.val,",current.val)
                right.next = current.next
                # print("current.val,",current.val)
                # print("current.next.val,",current.next.val)
                current.next = right
                current = current.next.next
                print("left.val,",left.val)
                print("right.val,",right.val)
                print("current.val,",current.val)
                print("dummyhead.next.val,",dummyhead.next.val)
            else:
                break
        return dummyhead.next
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号