
写法2
class Solution {
int res = 0;
public int sumOfLeftLeaves(TreeNode root) {
dfs(root, false);
return res;
}
public void dfs(TreeNode node, boolean isLeft) {
if (node == null) {
return;
}
if (node.left == null && node.right == null && isLeft) {
res += node.val;
return;
}
dfs(node.left, true);
dfs(node.right, false);
}
}
写法1
class Solution {
public int sumOfLeftLeaves(TreeNode root) {
return sum(root, false);
}
public int sum(TreeNode root, boolean flag) {
if (root == null) {
return 0;
}
if (root.left == null && root.right == null) {
return flag ? root.val : 0;
}
int sumLeft = sum(root.left, true);
int sumRight = sum(root.right, false);
return sumLeft + sumRight;
}
}