跳到正文
前端知识库
算法

反转链表:迭代与递归

prev、cur、next 是标准写法。(深入阅读:1. 迭代优势)

1 分钟

反转链表:迭代与递归

一、面试常考点

1. 迭代反转三指针

prevcurnext 是标准写法。(深入阅读:1. 迭代优势

2. 递归反转思路

先反转子链表,再把当前节点接到尾部。(深入阅读:2. 递归优势

二、细节介绍

1. 迭代优势

空间 O(1),更稳。

2. 递归优势

表达简洁,但有栈深风险。

三、示例代码

function reverseList(head) {
  let prev = null
  let cur = head

  while (cur) {
    const next = cur.next
    cur.next = prev
    prev = cur
    cur = next
  }

  return prev
}

四、常用应用场景

1. 区间反转

如反转链表 II、K 个一组反转。

2. 回文链表

后半段反转后做对比。