描述
Find the sum of all left leaves in a given binary tree.
Example:
1 2 3 4 5 6 7
| 3 / \ 9 20 / \ 15 7
There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.
|
分析
可以直接用递归的方式解决。在原函数里检查当前节点的左子节点是否为叶子节点,如果是,返回该左子节点的值加上右子节点递归调用的结果;如果不是,对左右子节点分别调用递归函数,返回两者之和。
解决方案1(Java)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
class Solution { int sum = 0; public int sumOfLeftLeaves(TreeNode root) { if (root == null) { return 0; } if (root.left != null && root.left.left == null && root.left.right == null) { return root.left.val + sumOfLeftLeaves(root.right); } return sumOfLeftLeaves(root.left) + sumOfLeftLeaves(root.right); } }
|