题目描述:
计算给定二叉树的所有左叶子之和。
示例:
3
/ \
9 20
/ \
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-left-leaves
思路: dfs + 递归, js递归会超时,多提交几次就通过了,狗头保命。。。
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number}
*/
var sumOfLeftLeaves = function(root) {
let sum = 0;
if(!root) return sum;
if(root.left !== null) {
if(root.left.left === null && root.left.right === null) {
sum += root.left.val;
} else {
sum += sumOfLeftLeaves(root.left);
}
}
if(root.right !== null) {
sum += sumOfLeftLeaves(root.right);
}
return sum;
};