救救孩子吧,递归硬是,没搞懂
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要归零啊