Hot100:二叉搜索树中第 K 小的元素(Kth Smallest Element in a BST)中序计数 / 提前停止 ACERS 解析

副标题 / 摘要 LeetCode 230 的难点不是“会中序遍历”,而是把 BST 的有序性用成真正有用的信息。只要抓住“中序第 k 次访问到的节点就是答案”,整题就会变成一个非常稳定的计数问题。 预计阅读时长:11~14 分钟 标签:Hot100、二叉树、BST、中序遍历、栈 SEO 关键词:Kth Smallest Element in a BST, 二叉搜索树中第 K 小的元素, BST, 中序遍历, 显式栈, LeetCode 230 元描述:系统讲透 LeetCode 230 的 BST 中序有序性、显式栈计数与提前停止技巧,并给出工程迁移与多语言实现。 A — Algorithm(题目与算法) 题目还原 给定一棵二叉搜索树 root 和一个整数 k,请找出这棵树中第 k 小的元素。 这里的 k 从 1 开始计数。 输入输出 名称 类型 描述 root TreeNode 二叉搜索树根节点 k int 第几个最小元素,1 <= k <= n 返回值 int 第 k 小的节点值 示例 1 输入:root = [3,1,4,null,2], k = 1 输出:1 示例 2 输入:root = [5,3,6,2,4,null,null,1], k = 3 输出:3 提示 树中的节点数为 n 1 <= k <= n <= 10^4 0 <= Node.val <= 10^4 进阶 如果 BST 经常插入、删除,并且需要频繁查询第 k 小,你会怎么优化? ...

2026年4月20日 · 8 分钟 · map[name:Jeanphilo]

Hot100:验证二叉搜索树(Validate Binary Search Tree)区间约束 / 中序判序 ACERS 解析

副标题 / 摘要 LeetCode 98 最容易写错的地方,不是“不会递归”,而是误以为每个节点只要和自己的父节点比较就够了。真正的 BST 校验要把祖先留下来的上下界一路向下传递。本文按 ACERS 结构把这个不变量讲透,再补上中序遍历判序的等价视角。 预计阅读时长:11~14 分钟 标签:Hot100、二叉树、BST、DFS、中序遍历 SEO 关键词:Validate Binary Search Tree, 验证二叉搜索树, BST, 区间约束, 中序遍历, LeetCode 98 元描述:系统讲透 LeetCode 98 的区间递归写法与中序递增判定思路,包含推导、工程迁移、多语言实现与高频误区。 A — Algorithm(题目与算法) 题目还原 给你一个二叉树的根节点 root,判断它是否是一棵有效的二叉搜索树(BST)。 有效 BST 需要同时满足: 左子树所有节点值都严格小于当前节点值 右子树所有节点值都严格大于当前节点值 左右子树本身也都必须是 BST 输入输出 名称 类型 描述 root TreeNode 二叉树根节点 返回 bool 是否为有效 BST 示例 1 输入:root = [2,1,3] 输出:true 示例 2 输入:root = [5,1,4,null,null,3,6] 输出:false 解释:根节点的值是 5,但是右子节点的值是 4 。 提示 树中节点数目范围在 [1, 10^4] 内 -2^31 <= Node.val <= 2^31 - 1 目标读者 刷 Hot100,准备把 BST 判断模板彻底固定下来的学习者 会写树递归,但一遇到“全局约束”就容易只写局部判断的开发者 在工程里处理树形有序结构、范围规则树、层级校验逻辑的工程师 背景 / 动机 这题看起来像一题“简单树递归”,但它真正训练的是: ...

2026年4月19日 · 7 分钟 · map[name:Jeanphilo]

Hot100:二叉树的中序遍历(Binary Tree Inorder Traversal)递归 / 显式栈 ACERS 解析

副标题 / 摘要 二叉树遍历是树题模板的起点,中序遍历则是“递归思维”和“显式栈模拟”最典型的一题。本文按 ACERS 结构拆解 LeetCode 94,把左-根-右的访问顺序、迭代栈写法和工程迁移价值一次讲清。 预计阅读时长:10~12 分钟 标签:Hot100、二叉树、DFS、栈、中序遍历 SEO 关键词:Hot100, Binary Tree Inorder Traversal, 二叉树的中序遍历, 中序遍历, 显式栈, LeetCode 94 元描述:从递归到显式栈,系统讲透 LeetCode 94 二叉树中序遍历,并给出工程场景迁移与多语言实现。 目标读者 正在刷 Hot100,希望把树遍历模板固定下来的同学 刚从数组 / 链表过渡到树结构,容易把前序、中序、后序顺序写混的开发者 需要在 BST、表达式树、抽象语法树里复用“左-根-右”思想的工程师 背景 / 动机 中序遍历本身不复杂,但它的训练价值很高: 它是“递归 = 隐式栈,迭代 = 显式栈”最容易建立直觉的一题 它能帮助你稳定掌握“先一路向左,再回退访问根,再转向右子树”的过程 在 二叉搜索树(BST) 里,中序遍历天然得到有序序列,工程迁移价值很强 很多人第一次写树题不是逻辑不会,而是: 不清楚访问顺序到底是谁先谁后 迭代版不知道什么时候入栈、什么时候出栈 一旦树为空或只有单边链,代码就容易写乱 这题把模板练熟,后面的验证 BST、找第 k 小元素、恢复二叉搜索树等题会更顺。 核心概念 中序遍历:按照 左子树 -> 根节点 -> 右子树 的顺序访问 DFS(深度优先搜索):树遍历最常见的组织方式,中序遍历就是 DFS 的一种访问顺序 显式栈:把递归调用栈手动写出来,用栈保存“回头还要处理的节点” 树高 h:空间复杂度通常写成 O(h),平衡树约为 O(log n),极端退化链表时是 O(n) A — Algorithm(题目与算法) 题目还原 给定二叉树根节点 root,返回它的 中序遍历 结果。 ...

2026年3月6日 · 6 分钟 · map[name:Jeanphilo]