算法刷题-二叉树-Leetcode-513.找树左下角的值,112. 路径总和 113.路径总和ii,106.从中序与后序遍历序列构造二叉树,105.从前序与中序遍历序列(python)

513.找树左下角的值

背景:

思路:

实践:

复盘:


112. 路径总和

背景:给一个二叉树,求有没有满足根节点到叶子节点的和是target

思路:还是回到递归思路上,求最大深度就是依次遍历根节点到叶子节点,此时要统计每次遍历至叶子节点(node没有左右孩子)的和是否满足条件,因为要累积所以还是子函数实现

实践:

复盘:


113.路径总和ii

背景:给一个二叉树,求有没有满足根节点到叶子节点的和是target,并把符合条件的路径都存起来

思路:理解回溯回来思考这道题容易很多,深度遍历时会依次遍历根节点到叶子节点,遍历时候同时把之前路径和累加至叶子节点(先判断是叶子节点再判断是否和满足条件)满足条件则收集结果,递归左右子树(回溯所有可能情况,递归时总和去掉当前值,新统计下一条路径)

实践:

复盘:


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

背景:给两个序列,一个中序(左中右),一个前序(中左右),要求构造二叉树

思路:先根据后序最后一节点确定根节点,在中序数组再根据根节点切割,即得到左右子树。此时,可以根据已的左右子树去后序遍历对应(如何对应呢,可以考虑坐标,然后根据左右子树的长度确定下一层中在后序遍历中的根节点),诸如此类,进行递归。

实践:

复盘:跟随大佬思路,理解再学习


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

背景:给两个序列,一个中序(左中右),一个后序(左右中),要求构造二叉树

思路:和上题一样,注意区别就在先获取的根节点在最后侧。中序分隔完成获取根节点的坐标后,根据根节点的坐标截取中序遍历的左子树和右子树。后序遍历再根据左右子树的长度,获取下一层的左右子树进而确认新的根节点

实践:

复盘:


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值