解题思路:
暂存节点tmp和tmp1
注意:while (cur.next != null && cur.next.next != null)表示为偶数和奇数时的循环停止条件,并且while语句中的顺序不可交换,交换会报空指针异常
class Solution {
public ListNode swapPairs(ListNode head) {
ListNode dummy = new ListNode(-1);
dummy.next = head;
ListNode cur = dummy;
while (cur.next != null && cur.next.next != null) {
ListNode tmp = cur.next;
ListNode tmp1 = cur.next.next.next;
cur.next = cur.next.next;
cur.next.next = tmp;
tmp.next = tmp1;
cur = cur.next.next;
}
return dummy.next;
}
}