Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given 1->2->3->4
, you should return the list as 2->1->4->3
.
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
AC代码:
class Solution(object): def swapPairs(self, head): if not head: return None if not head.next: return head ret_node = head.next while True: temp = head.next.next head.next.next = head if not temp or not temp.next: head.next = temp break else: head.next = temp.next head = temp return ret_node
规定了不能交换值,只能改变节点。
所以每两个节点分为一组,用一个临时变量存储后面节点即可。
原文:http://www.cnblogs.com/zhuifengjingling/p/5237049.html