找树左下角的值

题解:
如何理解树最下角的值?最后一行,且是最左边的值。找最左边,我们想到的是前序遍历。
1.确定递归函数的参数和返回值
遍历的树的根节点,记录深度的变量,无返回值
2.确定终止条件
遇到叶子节点的时候,就是左右孩子都为空;当前深度与最大深度做对比,取最大深度的节点的值
3.确定单层递归的逻辑
使用回溯,分左右树的回溯

路径总和

题解:
1.确定递归函数的参数和返回类型
传入二叉树的根节点,以及一个计数器,计数器是用来计算二叉树的一条边之和是否正好是目标和;返回的是bool类型
2.确定终止条件
是叶子节点且count是0,说明找到了目标和的路径,返回true,若是指叶子节点,但是count不是0,那返回false
3.确定单层递归的逻辑
因为终止条件是判断叶子节点,所以递归的过程找给你就不要让空节点进入递归,递归函数是有返回值的,如果递归函数返回true,说明找到了合适的路径,应该立刻返回。
代码:

路径总和ii


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

代码:

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

代码:

网友评论