给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
示例:
给定1->2->3->4
, 你应该返回2->1->4->3
.
说明:
- 你的算法只能使用常数的额外空间。
- 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
本题就是运用temp,结点交换画流程图容易理解。
class Solution(object):
def swapPairs(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if head == None:
return head
cur = ListNode(0)
cur.next = head
first =cur
while cur.next and cur.next.next:
n1 = cur.next
n2 = n1.next
nxt = n2.next
n1.next = nxt
n2.next = n1
cur.next = n2
cur = n1
return first.next