Leetcode题解之 —— 左叶子之和

思路


思路一(耗时92ms)

深度优先遍历

  • 标记左叶子
  • 根据标记与否添加至数组
  • reduce迭代计算最终结果

题解


  • 解法一
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* @param {TreeNode} root
* @return {number}
*/
function dfs(root, result) {
if (!root) {
return null;
}
if (root.left) {
root.left.flag = true;
}
if (!root.left && !root.right) {
root.flag && (result.push(root.val));
}

dfs(root.left, result);
dfs(root.right, result);
}

var sumOfLeftLeaves = function (root) {
const result = [];

dfs(root, result);

return result.reduce((t, c) => {
t += c;
return t;
}, 0);
};