左叶子之和
计算给定二叉树的所有左叶子之和。
示例:
3
/ \
9 20
/ \
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
思路+代码+注释:
int sum=0;
public int sumOfLeftLeaves(TreeNode root) {
/*
思路:递归遍历每个节点,使用left作为左节点标识,当left为true并且左右子节点为null说明节点是左叶子节点统计sum值
*/
sumOfLeftLeaves(root,false);
return sum;
}
private void sumOfLeftLeaves(TreeNode node,boolean left)
{
if (node==null)
{
return;
}
if (left==true && node.left==null && node.right==null)
{
sum+=node.val;
}
sumOfLeftLeaves(node.left,true);
sumOfLeftLeaves(node.right,false);
}