513.找树左下角的值
背景:
思路:
实践:
复盘:
112. 路径总和
背景:给一个二叉树,求有没有满足根节点到叶子节点的和是target
思路:还是回到递归思路上,求最大深度就是依次遍历根节点到叶子节点,此时要统计每次遍历至叶子节点(node没有左右孩子)的和是否满足条件,因为要累积所以还是子函数实现
实践:
复盘:
113.路径总和ii
背景:给一个二叉树,求有没有满足根节点到叶子节点的和是target,并把符合条件的路径都存起来
思路:理解回溯回来思考这道题容易很多,深度遍历时会依次遍历根节点到叶子节点,遍历时候同时把之前路径和累加至叶子节点(先判断是叶子节点再判断是否和满足条件)满足条件则收集结果,递归左右子树(回溯所有可能情况,递归时总和去掉当前值,新统计下一条路径)
实践:
复盘:
105.从前序与中序遍历序列构造二叉树
背景:给两个序列,一个中序(左中右),一个前序(中左右),要求构造二叉树
思路:先根据后序最后一节点确定根节点,在中序数组再根据根节点切割,即得到左右子树。此时,可以根据已的左右子树去后序遍历对应(如何对应呢,可以考虑坐标,然后根据左右子树的长度确定下一层中在后序遍历中的根节点),诸如此类,进行递归。
实践:
复盘:跟随大佬思路,理解再学习
106.从中序与后序遍历序列构造二叉树
背景:给两个序列,一个中序(左中右),一个后序(左右中),要求构造二叉树
思路:和上题一样,注意区别就在先获取的根节点在最后侧。中序分隔完成获取根节点的坐标后,根据根节点的坐标截取中序遍历的左子树和右子树。后序遍历再根据左右子树的长度,获取下一层的左右子树进而确认新的根节点
实践:
复盘: