==============================================================================
【id】#24
【title】 Swap Nodes in Pairs
【description】
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.
【idea】
递归法。交换两个节点的值。
【code】
class Solution(object):
def swapPairs(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if head == None or head.next == None: return head
res = ListNode(0)
res = head.next
head.next = self.swapPairs(head.next.next)
res.next = head
return res