反转链表:迭代与递归
一、面试常考点
1. 迭代反转三指针
prev、cur、next 是标准写法。
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. 回文链表
后半段反转后做对比。