这一题主要还是要掌握递归法 迭代法比较复杂考虑情况非常多
递归法:
明确递归函数的参数和返回值
![]()
明确终止条件

明确单层递归的逻辑

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

绝对值是否大于1

在学二叉树的所有路径前要学会回溯
我的理解是:因为要遍历每一条到叶子结点的路径并复用叶子结点的上一结点 ,我们需要把叶子结点值pop掉 回溯到上一枝干结点
str.remove(str.size()-1);就是回溯
我同时学到了 list可以用get(i)来访问里面的数 之前都是用加强for

首先明白怎么寻找左子树
当该节点左子结点不为空且左子树的左结点不为空且左子树的右结点不为空是才满足左叶子结点
即:

因为左子树和右子树会产生叶子结点所以 用left right去存左边和右边的数
![]()
三步
参数返回值:![]()
结束条件:![]()
递归条件:
整体代码为
迭代法:

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

被折叠的 条评论
为什么被折叠?



