题目传送门
1.定义一个虚拟节点链接链表
2.定义一个当前节点指向虚拟节点
3.在当前节点的下一个节点和下下一个节点都不为null的情况下。
- 定义 node1和node2。保存当前节点后面两个节点的地址。
- cur.next = node2;
- node1.next = node2.next;
- node2.next = node1;
- cur = node1;
4.返回return dummyHead.next;
class Solution {
public ListNode swapPairs(ListNode head) {
ListNode dummyHead = new ListNode(0,head);
ListNode cur = dummyHead;
while(cur.next != null && cur.next.next != null){
ListNode node1 = cur.next;
ListNode node2 = cur.next.next;
cur.next = node2;
node1.next = node2.next;
node2.next = node1;
cur = node1;
}
return dummyHead.next;
}
}