File tree 1 file changed +19
-4
lines changed
1 file changed +19
-4
lines changed Original file line number Diff line number Diff line change 7
7
* }
8
8
*/
9
9
/**
10
- * 左叶子之和
11
10
* @param {TreeNode } root
12
11
* @return {number }
13
12
*/
14
13
var sumOfLeftLeaves = function ( root ) {
14
+ // 前序遍历 递归
15
15
let sum = 0 ;
16
-
17
16
const preOrderTraverse = ( node ) => {
18
17
if ( node ) {
19
18
// 判断是否是左叶子节点
@@ -24,8 +23,24 @@ var sumOfLeftLeaves = function (root) {
24
23
preOrderTraverse ( node . right ) ;
25
24
}
26
25
} ;
27
-
28
26
preOrderTraverse ( root ) ;
29
-
30
27
return sum ;
28
+
29
+ // 前序遍历 迭代
30
+ // return preOrder(root);
31
31
} ;
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
+ }
You can’t perform that action at this time.
0 commit comments