代码随想录16 找树左下角的值 | 路径总和 | 从中序与后序遍历序列构造二叉树

找树左下角的值

找树左下角的值

解题思路

层序遍历法较为简单,主要是递归法,找底层最左边的叶子节点其实就是找最大深度的叶子节点,然后优先从左边开始找。

知识点

最大深度,递归法

心得

递归法没有思考出来,因为不太清楚如何找打最大深度的叶子节点

路径总和

路径总和

解题思路

还是回溯的思路,当遇到叶子节点时如果还没有得到时就需要将值回溯到上一个节点

知识点

回溯,二叉树,递归

心得

主要是考虑什么时候结束递归以及怎么设计递归。代码随想录给了一个比较具体的关于递归的总结和概括:

1:确定递归的参数和返回类型

  • 如果需要搜索整棵二叉树且不用处理递归返回值,递归函数就不要返回值。(这种情况就是本文下半部分介绍的113.路径总和ii)
  • 如果需要搜索整棵二叉树且需要处理递归返回值,递归函数就需要返回值。 (这种情况我们在236. 二叉树的最近公共祖先 (opens new window)中介绍)
  • 如果要搜索其中一条符合条件的路径,那么递归一定需要返回值,因为遇到符合条件的路径了就要及时返回。(本题的情况)

2:确定终止条件

3. 确定单次递归的逻辑

从中序与后序遍历序列构造二叉树

从中序与后序遍历序列构造二叉树

解题思路

主要是知道怎么找到根节点,后序遍历的数组中最后一个节点是根节点,随后通过这个节点找到中序数组中的根节点,就能找到对应的左右两个节点,随后利用递归解题。

知识点

递归,中序,后序

心得

要注意划分数组的区间

posted @ 2024-07-07 00:17  不进育碧不改名  阅读(169)  评论(0编辑  收藏  举报