这一题主要还是要掌握递归法 迭代法比较复杂考虑情况非常多
递归法:
明确递归函数的参数和返回值
明确终止条件
明确单层递归的逻辑
如果出现了左子树于又子树的绝对值大于1了又返回-1
绝对值是否大于1
在学二叉树的所有路径前要学会回溯
我的理解是:因为要遍历每一条到叶子结点的路径并复用叶子结点的上一结点 ,我们需要把叶子结点值pop掉 回溯到上一枝干结点
str.remove(str.size()-1);就是回溯
我同时学到了 list可以用get(i)来访问里面的数 之前都是用加强for
首先明白怎么寻找左子树
当该节点左子结点不为空且左子树的左结点不为空且左子树的右结点不为空是才满足左叶子结点
即:
因为左子树和右子树会产生叶子结点所以 用left right去存左边和右边的数
三步
参数返回值:
结束条件:
递归条件:
整体代码为
迭代法: