- 博客(102)
- 收藏
- 关注
原创 二叉搜索树的最小绝对差:中序遍历的巧妙应用
本文利用BST的中序升序特性,通过一次遍历高效求解最小绝对差。掌握此方法可解决多数BST相关的最值问题。建议结合其他遍历方式对比理解,加深对树结构的应用能力!
2025-04-11 23:16:02
487
原创 修剪二叉搜索树——递归
通过递归和BST特性,我们可以高效修剪树结构。关键点在于利用节点值的范围判断,避免无效遍历。掌握此方法后,类似问题(如区间查询、范围统计)均可迎刃而解。
2025-04-10 10:12:16
629
原创 最大二叉树详解与构建方法
给定一个不重复的整数数组nums,我们可以通过以下递归算法构建最大二叉树:创建一个根节点,其值为数组nums中的最大值。对最大值左边的子数组前缀进行递归构建,生成左子树。对最大值右边的子数组后缀进行递归构建,生成右子树。最终,构建完成的二叉树就是我们所说的最大二叉树。利用递归和分治思想构建最大二叉树。最大二叉树不仅是一个经典算法题,还能用于学习二叉树的构造方法和递归思想。希望这篇文章对你有所帮助!在评论区留下你的问题,我们一起讨论~
2025-04-09 13:39:31
1019
原创 LeetCode】寻找重复子树:深度解析与高效解法
通过序列化子树为唯一字符串,并结合哈希表记录出现频次,能够高效解决二叉树重复子树的查找问题。该解法思路清晰,代码简洁,适合作为面试快速解题方案。
2025-04-08 21:47:52
642
原创 另一棵树的子树——深度优先搜索
dfs用来遍历整棵树,找到所有可能的位置。check用来判断当前子树是不是跟subRoot完全一致。复杂度分析:时间复杂度:最坏情况是 O(m * n),其中 m 是root的节点数,n 是subRoot的节点数。空间复杂度:O(h),h是root树的高度(递归调用栈深度)。
2025-04-07 13:58:15
386
原创 二叉搜索树的最小绝对差——深度优先搜索
因为二叉搜索树的中序遍历是升序排列的,所以只需要比较相邻节点就可以了。pre保存上一个访问过的节点的值。每次计算当前节点和前一个节点的差值,更新答案。
2025-04-06 23:23:37
355
原创 【LeetCode】在每个树行中找最大值(DFS 深度优先搜索)
✅ 本题用DFS + 哈希表递归时带上层数信息;每层维护最大值。如果想进一步练习,可以尝试用BFS(广度优先遍历)来做一版!有任何问题也欢迎在评论区交流~
2025-04-06 20:51:41
704
原创 找树左下角的值(DFS 深度优先搜索)| LeetCode 513
实际上,这题也可以用**BFS(广度优先搜索)**来做,使用队列层层推进,最后一层的第一个节点即是答案!你的支持就是我更新的最大动力!当遍历到一个比当前记录更深的节点时,更新答案。先递归左子树,再递归右子树(保证左优先)。:递归时先访问左子树,再访问右子树。是节点数量,需要遍历所有节点一次。,这样才能确保找到“最左”的节点。当到达一个更深的节点时,更新。是树的高度(递归栈空间)。:当前最底层最左节点的值。二叉树中至少有一个节点。:当前遍历到的最大深度。:记录当前的最大深度。
2025-04-06 20:18:04
501
原创 搜索旋转排序数组(O(log n) 复杂度解法)
这种方法高效且易于理解,非常适用于 旋转排序数组的搜索问题。希望这篇文章能帮助你更好地理解该问题!
2025-02-11 16:01:54
868
原创 leetcode——岛屿数量(java)
这道题看似难,实则只要理解原理之后就非常简单,简单清晰的题解,请点击这里,让我们一起加油,刷爆Leetcode!
2025-02-04 15:24:09
355
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1