- Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head. You must solve the problem without modifying the values in the list’s nodes (i.e., only nodes themselves may be changed.)
Example 1:
**Input:** head = [1,2,3,4]
**Output:** [2,1,4,3]
Example 2:
**Input:** head = []
**Output:** []
Example 3:
**Input:** head = [1]
**Output:** [1]
Constraints:
- The number of nodes in the list is in the range
[0, 100]
. 0 <= Node.val <= 100
Idea
使用三个指针迭代整条链表
current/next 表示待交换的2个节点指针
prev 表示比较2个节点的第一个节点的前一个节点
JavaScript Solution
/**
* 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 dummyHead = new ListNode(-1,head)
let prev = dummyHead
while(prev && prev.next && prev.next.next){
let current = prev.next
let next = prev.next.next.next
prev.next = prev.next.next
prev.next.next = current
current.next = next
prev = current
}
return dummyHead.next
};
标签:current,head,val,0024,next,链表,nodes,prev,LeetCode
From: https://blog.csdn.net/avenccssddnn/article/details/140245187