leetcode每日一题 - 24 24. 两两交换链表中的节点
题解
贴出代码
// 4.15 三数之和
class ListNode {
val: number
next: ListNode | null
constructor(val?: number, next?: ListNode | null) {
this.val = val === undefined ? 0 : val
this.next = next === undefined ? null : next
}
}
function swapPairs(head: ListNode | null): ListNode | null {
let dummy = new ListNode()
dummy.next = head
let current = dummy
while (current.next !== null && current.next.next !== null) {
let n1 = current.next
let n2 = current.next.next
//current的下个节点是n2
current.next = n2
//n1的下个节点指向第三个节点即n2的下一个节点(看题解)
n1.next = n2.next
//n2的下个节点指向n1
n2.next = n1
//current节点移动到n1,开始下个循环.next
current = n1
}
return dummy.next
}