Hot100:反转链表(Reverse Linked List)三指针迭代/递归 ACERS 解析
副标题 / 摘要 反转链表是“指针重连”的入门必修课:看似简单,却最容易因为边界、断链、顺序写错而翻车。本文用 ACERS 结构把三指针迭代写法讲透,并给出递归对照与多语言可运行实现。 预计阅读时长:10~12 分钟 标签:Hot100、链表、指针、迭代 SEO 关键词:Hot100, Reverse Linked List, 反转链表, 三指针, 迭代, 递归, LeetCode 206 元描述:三指针迭代 O(n)/O(1) 反转单链表,附递归对比、工程迁移与多语言实现。 目标读者 正在刷 Hot100 / 准备面试的同学 写链表题经常断链/空指针、希望建立稳定模板的中级开发者 需要在 C/C++/Rust 等语言里熟练处理指针与所有权的工程师 背景 / 动机 在真实工程里,“反转链表”不一定以 LeetCode 的形态出现,但它背后的能力非常通用: 你要在 O(1) 额外空间 下重排节点顺序(例如复用节点对象,避免额外分配) 你要理解 指针重连的顺序:先保留 next,再改 cur.next,否则就会断链 你要能写出 不会特判地狱、对 head = null 也稳的实现 把这题做成模板后,很多链表题(如反转区间、k 组反转、判断回文链表)都会变得顺手很多。 核心概念 单链表:每个节点只有一个 next 指针指向后继 断链风险:一旦把 cur.next 改掉而没保存原来的 next,就丢失后半段 三指针(prev / cur / next):用 next 暂存后继,再把 cur.next 指向 prev 循环不变量:prev 永远指向“已反转部分”的头;cur 永远指向“未处理部分”的头 A — Algorithm(题目与算法) 题目还原 给你单链表的头节点 head,请你反转链表,并返回反转后的链表。 ...