计算给定二叉树的所有左叶子之和。
示例:
3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
思路:
采用dfs递归调用 对每一个是左孩子的节点判断 其是否为叶子节点 若是则将其值加入res中
public class leetcode404_左叶子之和 {
int res=0;
public int sumOfLeftLeaves(TreeNode root) {
if (root==null) {
return 0;
}
if (root.left!=null) { //该节点的左节点不为空
//再判断该节点的左节点 是否为叶子节点
if (root.left.left==null&&root.left.right==null) { //该节点的左节点是叶子
res+=root.left.val;
}else { //该节点的左节点不是叶子
sumOfLeftLeaves(root.left); //对该节点的左节点递归
}
}
sumOfLeftLeaves(root.right);
return res;
}
}