- 博客(8)
- 收藏
- 关注
原创 算法刷题树(tree)leetcode(七)102,107 二叉树的层序遍历 045找左下角的值
分析:题目需要找的是最下角的值,这个点很巧妙,我们会惯性思维找这个递归最右边,但是由于这个树枝的高度不同,最下角的值一可能在左枝也有可能在右枝,但是他不变的这个点啊就是他在的是最后一层————因此转移到用层序遍历的方法来写。标准的二叉树的层序遍历,这个可以参考各大平台对树的层序遍历的讲解来理解这个代码,这个代码模板相对比较的固定,可以说能熟练于心了。当时立刻在下面评论了个:惊为天人。这里就比较的巧妙,使得加入列表的顺序是按照每一层的从左往右的这个顺序,这样数组最后的元素就是题目需要的左下角的元素了。
2025-08-19 23:54:22
221
原创 算法刷题树(tree)leetcode(六)257,404左叶子之和,二叉树的所有路径
首先这个和上面一篇的路径题很像,但是输出的格式不大相同。但是用的都是递归的思路。首先很明显是一道DFS递归遍历的题目,只不过需要判断是左叶子节点罢了。1.这里面可以一口气访问两层节点值的,比如root.left.left。最后,祝大家天天开心,保持生命力哦!找到左子节点然后累加就行。再来两道递归思路的题目。
2025-08-09 22:01:57
235
原创 算法刷题树(tree)leetcode(五)112,113 路径总和问题
(这点比较重要其实,我认为树的算法里面应该潜意识里面带有这个遍历顺序的设计,虽然这里看起来也不太影响代码的思路)我认为经过前面几个题目的洗礼,这个树的递归应该是掌握的不错了,或者说有一定的认识了吧!今天的两道题目同样也和递归有关,并且我认为题目还是相当经典的。解释:实际上这里的所有路径,就是一个需要回溯的过程。最后,祝大家天天开心,保持生命力哦!2.要求输出全部的路径。
2025-08-09 00:05:13
326
原创 算法刷题树(tree)leetcode(四)226,101 ,100翻转二叉树,对称二叉树,相同的树。
首先由之前的题目我们可以知道,返回值写成return left + right + 1 这个可以生成计算节点的总数,返回max(dfs(root.left) + dfs(root.right)) + 1 返回的是高度,return - 1 也可以提前判断树是否平衡。这个题目对于我开始的时候写的来说呢,还是挺难的,只学过单个节点的操作嘛,这个题就是,对于这种对称的题,不妨大胆一点,谁说dfs()里面只能传入一个参数的。前言:递归是dfs的精髓,这个返回值又决定着这个递归函数的作用。
2025-08-07 17:52:01
717
原创 算法刷题树(tree)leetcode(三)222,110完全二叉树,平衡二叉树
那么由今天的两道题目开启今天的刷题旅程吧!!!首先书接上文:上一篇主要是通过DFS递归,找到这个最大高度和最小高度。今天的这两道题呢,也是同样与高度有关的题目。
2025-08-06 15:47:28
678
原创 算法刷题(拓扑排序)leetcode(一)207,210课程表
为了更好的再写出几个拓扑排序的题目,我决定在这个好好的总结一下基础的拓扑排序入门题目,这个部分可谓是很有难度了,简单标签的题目是没有的,难题是不太需要管的(因为太难了,其实面试的时候也不太可能涉及到这个难度),中档的题目还是值得好好研究一下。我的猜测是,因为确实用二维数组表示,或者储存这个数据,读取填写的时候比较方便,(比如手写的时候,你会发现手写邻接表比手写二维数组复杂),所以我觉得这里跟实际应用有关系吧。这个题目很明显有这个意思,后续课程是依赖前面的课程的,那么接下来就开始这个代码的设计吧。
2025-08-06 02:16:47
274
原创 算法刷题树(tree)leetcode(二)104,111,最大深度,最小深度
可能这个地方会有点小疑惑,为什么这个看起来和上面的代码不完全相同,没有left_h, right_h.其实这个是可以省略的,感觉大家经常些递归的都知道,就是一个接收返回值的过程。可以看到,这个代码应该是能通过一部分测试的,但是当下面这两种情况出现的时候,会误以为高度为1,因为当第二层左侧没有叶子节点,或者右侧没有叶子节点的时候,会误判高度为1。虽然说这是错误的,但是其实也对了绝大部分,主要的逻辑还是对的,只不过说有些特殊情况漏掉了。下面这是错误的写法!1.当左侧节点为空的时候,递归右侧节点。
2025-08-05 21:27:36
578
原创 算法刷题树(tree)leetcode(一)94,144,145.前中后序遍历
这点挺常用的,如果说题目提到的是二叉搜索树,这个时候用中序遍历,可以得到有序数组,下一步其实可以转化为数组的题目了,其实这点也挺有意思的,相当于从树降低到数组的题目了,但是是否有利于训练树这个数据结构的思维其实我不太好说,因为感觉会处理递归更高级一点吧,对后面算法学习也更有用。我觉得起初刷题最困难的是找不到合适的刷题顺序,尤其是每当学习完成一个算法学习之后,不知道对应哪些算法题可以写。我来分享一下我自己的学习经验(肯定不完美,但是希望对自己的总结和对别人的分享参考)。这个就是最简单的题目了。
2025-08-05 16:59:02
314
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅