这里要分奇数偶数,因为12 34 5反转后为21 43 5
注意:note中写明不能修改链表中的值,左面这种方式是直接改链表中的值不正确
传入头指针,毫无疑问要进行循环;需要三个指针,指向的相邻两个元素a,b,相邻两个元素前面的那个元素pre
法一:这个对于self理解有难度,我还是不太理解
def swapPairs(self, head):
pre, pre.next = self, head
while pre.next and pre.next.next:
a = pre.next
b = a.next
pre.next, b.next, a.next = b, a, b.next
pre = abs
return self.next
法二:设计一个头指针不会随着两个节点变化而变化
def swapPairs(self, head):
dummyhead, dummyhead.next = ListNode(0),head
pre, pre.next = dummyhead, head
while pre.next and pre.next.next:
a = pre.next
b = a.next
a.next, b.next, pre.next = b.next, a, b
pre = a
return dummyhead.next