思路:
1.有一个链表0->1->2->3->4->5->6,创建三个指针,curr,n1,n2分别指向0,1,2
2.交换位置
curr.next=n2即0->2
n1.next=n2.next即1->3
n2.next=n1即2->1
结果就是0->2->1->3->4->5->6
3.再curr=n1也就是新的一轮curr,n1,n2分别指向1,3,4,重复步骤2即可
/*
* @lc app=leetcode.cn id=24 lang=javascript
*
* [24] 两两交换链表中的节点
*/
// @lc code=start
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var swapPairs = function (head) {
let dummy = new ListNode()
dummy.next = head
let curr = dummy
while (curr.next !== null && curr.next.next !== null) {
let n1 = curr.next
let n2 = curr.next.next
curr.next = n2
n1.next = n2.next
n2.next = n1
curr = n1
}
return dummy.next
}
// @lc code=end
// @after-stub-for-debug-begin
module.exports = swapPairs;
// @after-stub-for-debug-end