Given a linked list, swap every two adjacent nodes and return its head.
Example:
Given 1->2->3->4, you should return the list as 2->1->4->3.
Note:Your algorithm should use only constant extra space.
You may not modify the values in the list's nodes, only nodes itself may be changed.
shufanlin's solution:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def swapPairs(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
dummy = ListNode(0)
dummy.next = head
prev = dummy
cur = head
while cur and cur.next:
nxt = cur.next
prev.next = nxt
cur.next = nxt.next
nxt.next = cur
prev = cur
cur = cur.next
return dummy.next






网友评论