跳到主要内容

反转链表

迭代(双指针)

考虑遍历链表,并在访问各节点时修改 next 引用指向

const reverseLinkedList = (list) => {
// 初始化两个变量分别指向,null,和头节点
let cur = list
let pre = null

while (cur) {
// 暂存后继节点
const tmp = cur.next
// 修改引用指向(相当于翻转)
cur.next = pre
// 暂存当前节点
pre = cur
// 访问下一节点(最后这两步相当于向后移动指针)
cur = tmp
}
return pre
}