7.28day17(平衡二叉树 深度与高度的学习非常重要)

文章介绍了力扣(LeetCode)中关于二叉树的三个问题:平衡二叉树的递归解法,二叉树所有路径的学习要点,以及求解左叶子之和的思路。强调了递归法的重要性,回溯在遍历路径时的作用,以及识别左叶子节点的条件。

 110. 平衡二叉树 - 力扣(LeetCode)

这一题主要还是要掌握递归法 迭代法比较复杂考虑情况非常多

递归法:

     明确递归函数的参数和返回值

      

    

      明确终止条件

      

      

    明确单层递归的逻辑

如果出现了左子树于又子树的绝对值大于1了又返回-1

   

 绝对值是否大于1

 

 257. 二叉树的所有路径 - 力扣(LeetCode)

在学二叉树的所有路径前要学会回溯

我的理解是:因为要遍历每一条到叶子结点的路径并复用叶子结点的上一结点 ,我们需要把叶子结点值pop掉 回溯到上一枝干结点

  str.remove(str.size()-1);就是回溯

我同时学到了 list可以用get(i)来访问里面的数 之前都是用加强for

404. 左叶子之和 - 力扣(LeetCode)

首先明白怎么寻找左子树

 当该节点左子结点不为空且左子树的左结点不为空且左子树的右结点不为空是才满足左叶子结点

即:

 

因为左子树和右子树会产生叶子结点所以 用left right去存左边和右边的数

 三步

    参数返回值:

    结束条件:

    递归条件:

 整体代码为

 迭代法:

    

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值