Skip to content

Commit 84856b6

Browse files
committed
Update 404. 左叶子之和 前序遍历迭代
1 parent c2e4972 commit 84856b6

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

algorithms/sum-of-left-leaves.js

+19-4
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,12 @@
77
* }
88
*/
99
/**
10-
* 左叶子之和
1110
* @param {TreeNode} root
1211
* @return {number}
1312
*/
1413
var sumOfLeftLeaves = function (root) {
14+
// 前序遍历 递归
1515
let sum = 0;
16-
1716
const preOrderTraverse = (node) => {
1817
if (node) {
1918
// 判断是否是左叶子节点
@@ -24,8 +23,24 @@ var sumOfLeftLeaves = function (root) {
2423
preOrderTraverse(node.right);
2524
}
2625
};
27-
2826
preOrderTraverse(root);
29-
3027
return sum;
28+
29+
// 前序遍历 迭代
30+
// return preOrder(root);
3131
};
32+
33+
function preOrder(root) {
34+
const stack = [root];
35+
let sum = 0;
36+
while (stack.length) {
37+
const node = stack.pop();
38+
// left leaf node
39+
if (node.left && !node.left.left && !node.left.right) {
40+
sum += node.left.val;
41+
}
42+
node.right && stack.push(node.right);
43+
node.left && stack.push(node.left);
44+
}
45+
return sum;
46+
}

0 commit comments

Comments
 (0)