与大部分linklist的题目一样,这道题也要定义一个dummy head 将dummy head 设为新的头
一共需需要两个辅助指针。时间复杂度为O(n)
先将p指向 dummy head 然后当p.next 以及p.next.next存在的时候将两两进行调换
代码如下
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # @param a ListNode # @return a ListNode def swapPairs(self, head): if head==None or head.next==None: return head dummy=ListNode(0) dummy.next=head p=dummy while p.next and p.next.next: tmp=p.next.next p.next.next=tmp.next tmp.next=p.next p.next=tmp p=p.next.next return dummy.next