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. 思路: 只需交换两个相邻节点的value值即可Python实现:
# -*- coding:utf-8 -*- ''' Created on 2017年5月4日 @author: ZhuangLiang ''' # Definition for singly-linked list. from builtins import list class ListNode(object): def __init__(self, x): self.val = x self.next = None class Solution(object): def swapPairs(self, head): """ :type head: ListNode :rtype: ListNode """ p=head while head!=None and head.next!=None: temp=head.val head.val=head.next.val head.next.val=temp head=head.next head=head.next return p if __name__=="__main__": list=None p=list data=[1,2,3,4,8,9] for i in data: q=ListNode(i) q.next=None if list==None: list=p=q else: p.next=q p=p.next r=Solution() res=r.swapPairs(list) while res!=None: print(res.val); res=res.next