救救孩子吧,递归硬是,没搞懂
leetCode 404 左叶子之和
计算给定二叉树的所有左叶子之和。
示例:
3
/ \
9 20
/ \
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
示例:
3
/ \
9 20
/ \
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
class Solution {
public int sumOfLeftLeaves(TreeNode root) {
if (root == null) {
return 0;
}
//这里为何使用局部变量,全局变量就不行
int sum = 0;
if (isLeftLeave(root.left)) {
sum += root.left.val;
} else {
sum += sumOfLeftLeaves(root.left);
}
sum += sumOfLeftLeaves(root.right);
return sum;
}
private boolean isLeftLeave(TreeNode treeNode) {
return treeNode != null && (treeNode.left == null && treeNode.right == null);
}
} 而像leetCode 563,求坡度就用全局变量,个人认为全局变量能理解。但这里为何递归sum要归零啊
