98. 验证二叉搜索树
98. 验证二叉搜索树 98. 验证二叉搜索树 核心逻辑 验证二叉搜索树(BST)需要满足: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 本解法采用 分治 + 上下界约束 的策略: 每层递归传入当前节点允许的 最大值
98. 验证二叉搜索树 98. 验证二叉搜索树 核心逻辑 验证二叉搜索树(BST)需要满足: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 本解法采用 分治 + 上下界约束 的策略: 每层递归传入当前节点允许的 最大值
230. 二叉搜索树中第 K 小的元素 230. 二叉搜索树中第 K 小的元素 🚀核心逻辑 本解法采用 二叉搜索树的中序遍历 策略: 中序遍历特性:二叉搜索树的中序遍历结果是一个 严格递增 的序列。 操作流程: 进行中序遍历(左 -> 根 -> 右)。 每访问一个节点(由小到大),计数器 coun
236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先 核心逻辑 本解法采用 递归 的策略: 递归终止条件: 如果 root == null,说明走到底了还没找到 p 和 q ,返回 null。 如果 root 就是 p 或 q 其中一个,则直接返回 root。 递归搜索:
173. 二叉搜索树迭代器 173. 二叉搜索树迭代器 📚思路一:提前中序遍历 + 列表缓存 核心逻辑 本解法采用 提前中序遍历 的策略: 在构造函数中,使用递归对 BST 进行一次完整的中序遍历,将所有节点值按升序保存到 List<Integer> 中。 维护一个索引变量 index,初始化为
199. 二叉树的右视图 199. 二叉树的右视图 🔥思路一:BFS(层序遍历) 核心逻辑 本解法采用 BFS(层序遍历) 的策略: 使用队列 Queue 进行标准的层序遍历。 每一层遍历时,记录当前层的节点数量 size。 遍历当前层的每个节点,只将当前层的最后一个节点(即 i == size
103. 二叉树的锯齿形层序遍历 114. 二叉树展开为链表 核心逻辑 本解法采用 BFS(层序遍历) + 层号奇偶反转 的策略: 使用队列 Queue 进行标准层序遍历,一层一层处理。 定义一个变量 k 记录当前层数(从 1 开始计数)。 对于每一层,先按从左到右的顺序收集节点值。 如果是偶数层(
114. 二叉树展开为链表 🔗 题目链接:114. 二叉树展开为链表 核心要点 原地修改:不能创建新的TreeNode链表,必须直接修改原二叉树的left和right指针; 顺序要求:单链表顺序 = 原二叉树前序遍历顺序(根 → 左 → 右); 指针规范:所有节点的left指针必须置为null,r
129. 求根到叶节点数字之和 🔗题目链接:129.求根节点到叶节点数字之和 LeetCode 中等题——这道题是二叉树遍历的经典应用,核心考察「路径追踪」和「数值累加」,两种主流解法(迭代栈、递归)都很直观,适合巩固二叉树的遍历逻辑,今天就来详细拆解每一步思路,帮大家吃透这道题 🧠第一种:解题