题目
题解
画图理解结点关系即可做出
class Solution {
public ListNode swapPairs(ListNode head) {
ListNode dummyHead=new ListNode(0,head);
ListNode pre=head,p=dummyHead;
while(pre!=null&&pre.next!=null){
ListNode tmp=pre.next.next;
p.next=pre.next;
p.next.next=pre;
p=p.next.next;
p.next=null;
pre=tmp;
}
//奇数个结点,连上最后的结点
if(pre!=null)
p.next=pre;
return dummyHead.next;
}
}
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( 1 ) O(1) O(1)