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,请你反转链表,并返回反转后的链表。 ...

2026年2月1日 · 8 分钟 · map[name:Jeanphilo]

Hot100:搜索二维矩阵 II(Search a 2D Matrix II)右上角阶梯搜索 O(m+n) ACERS 解析

副标题 / 摘要 这题的关键不是二分,而是利用“行列都单调”的结构,从**右上角(或左下角)**像走楼梯一样移动:每一步都能排除一整行或一整列,从而把复杂度降到 O(m+n)。 预计阅读时长:10~13 分钟 标签:Hot100、矩阵、单调性、指针 SEO 关键词:搜索二维矩阵 II, 单调矩阵查找, 右上角搜索, O(m+n), LeetCode 240 元描述:在行列均升序的矩阵中搜索 target:从右上角阶梯式移动,每步排除一行或一列,O(m+n)/O(1) 解法与多语言实现。 目标读者 刷 Hot100,希望掌握“二维单调结构剪枝”模板的学习者 写过二分但总在二维问题里迷路的中级开发者 在工程中需要查询/裁剪/定位二维单调表格的工程师 背景 / 动机 二维表在工程里很常见:费率表、校准表、阈值表、网格配置表等。 当一个表满足“横向递增 + 纵向递增”的 二维单调(monotone matrix) 特性时,很多查询不需要 O(mn) 全扫。 这题就是经典入门:用单调性做剪枝,把搜索降成线性级别。 核心概念 概念 含义 在本题的作用 二维单调矩阵 行升序、列升序 保证“比较一次就能排除一行/列” 右上角起点 右上角元素:左边更小、下边更大 决策方向天然明确 剪枝 排除不可能包含 target 的行/列 每步减少搜索空间 O(1) 额外空间 只用 i/j 指针 适合大矩阵与性能场景 A — Algorithm(题目与算法) 题目还原 给定一个 m x n 矩阵 matrix 和一个目标值 target。矩阵满足: ...

2026年2月1日 · 7 分钟 · map[name:Jeanphilo]