public static ListNode swapPairs(ListNode head) {
ListNode ret = new ListNode(); // dummy head
ret.next = head;
ListNode p = head;
ListNode preNode = ret;
while (p != null)
{
if (p.next != null)
{
preNode.next = p.next; // 注意:后一个指针非null才直接指向这个node,否则preNode和Node直接连接
ListNode rem = p.next;
p.next = p.next.next; // 先更改前面的指针
rem.next = p; // 再更改后面指针
}
preNode = p;
p = p.next;
}
return ret.next;
}
05-16
211
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)