计算给定二叉树的所有左叶子之和。
示例:
3
/ \
9 20
/ \
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-left-leaves
思路
1.节点有两个孩子 判断左孩子是否是叶子节点是的话 把根节点的左节点的值 加上 右节点的值
2.右节点的值的左节点判断是否是叶子节点 循环递归
class Solution {
public int sumOfLeftLeaves(TreeNode root) {
if(root == null) return 0;
return leaves(root);
}
public int leaves(TreeNode root){
if(root == null ) return 0;
if(left1(root.left)){
return root.left.val + leaves(root.right);
}
return leaves(root.right)+leaves(root.left);
}
public boolean left1(TreeNode node){
if(node==null) return false;
return (node.left==null) && (node.right==null);
}
}