513.找树左下角的值
给定一个二叉树,在树的最后一行找到最左边的值。
思路:用层序遍历是非常简单的了,反而用递归的话会比较难一点。
这里的层序遍历,在每一层内部从右到左,保证最后一个节点是最左的节点。
递归法:1. 定义一个高度函数。2. 递归函数。终止条件:当节点的高度为1的时候,说明当前节点为叶节点,返回当前节点值。递归条件:否则,递归函数填入(更高的那个子树)
112. 路径总和 & 113.路径总和ii
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。112返回布尔值,113返回所有符合的路径。
思路:终止条件:到叶节点的时候,看路径上所有节点的值总和是否等于targetSum。如果相等,就把路径贴入结果。如果不是叶节点,就继续放进栈迭代。
112 & 113 迭代法
递归法
106.从中序与后序遍历序列构造二叉树
思路:后序遍历最后一个元素是根,中序遍历根元素左边是左子树,右边是右子树。
递归法&迭代法
105.从前序与中序遍历序列构造二叉树
思路:前序遍历第一个元素是根,中序遍历根元素左边是左子树,右边是右子树。
递归法&迭代法
以下是卡哥资料
513. 找树左下角的值
本地递归偏难,反而迭代简单属于模板题, 两种方法掌握一下
题目链接/文章讲解/视频讲解:https://programmercarl.com/0513.%E6%89%BE%E6%A0%91%E5%B7%A6%E4%B8%8B%E8%A7%92%E7%9A%84%E5%80%BC.html
路径总和
本题 又一次设计要回溯的过程,而且回溯的过程隐藏的还挺深,建议先看视频来理解
112. 路径总和,和 113. 路径总和ii 一起做了。 优先掌握递归法。
题目链接/文章讲解/视频讲解:https://programmercarl.com/0112.%E8%B7%AF%E5%BE%84%E6%80%BB%E5%92%8C.html
从中序与后序遍历序列构造二叉树
本题算是比较难的二叉树题目了,大家先看视频来理解。
106.从中序与后序遍历序列构造二叉树,105.从前序与中序遍历序列构造二叉树 一起做,思路一样的