@@ -10,14 +10,50 @@ class TreeNode {
10
10
* @return {number }
11
11
*/
12
12
const getMinimumDifference = ( root ) => {
13
- let queue = [ root ] , list = [ ] ;
14
- while ( queue . length > 0 ) {
15
- let curr = queue . shift ( ) , left = curr . left , right = curr . right ;
16
- list . push ( curr . val ) ;
17
- if ( null !== left ) queue . push ( left ) ;
18
- if ( null !== right ) queue . push ( right ) ;
13
+ let queue = [ root ] , list = [ ] , visitedList = [ ] ;
14
+ // while (queue.length > 0) {
15
+ // let curr = queue.shift(), left = curr.left, right = curr.right;
16
+ // list.push(curr.val);
17
+ // if (null !== left) queue.push(left);
18
+ // if (null !== right) queue.push(right);
19
+ // }
20
+
21
+ const inOrder = ( node ) => {
22
+ if ( null === node ) {
23
+ visitedList . pop ( ) ; // current
24
+ let parent = visitedList . pop ( ) ;
25
+ list . push ( parent . val ) ;
26
+ parent . left = null ;
27
+ return inOrder ( parent ) ;
28
+ } else if ( null === node . left ) {
29
+ visitedList . push ( node ) ;
30
+ list . push ( node . val ) ;
31
+ return inOrder ( node . right ) ;
32
+ } else {
33
+ visitedList . push ( node ) ;
34
+ return inOrder ( node . left ) ;
35
+ }
36
+ // else {
37
+ // // else if (null === node.right) {
38
+ // // list.push(node.val);
39
+ // // let parent = visitedList.pop();
40
+ // // parent.left == null;
41
+ // // return inOrder(parent);
42
+ // // } else if (null !== node.left) {
43
+ // // visitedList.push(node);
44
+ // // return inOrder(node.left);
45
+ // // } else if (null !== node.right) {
46
+ // // visitedList.push(node);
47
+ // // return inOrder(node.right);
48
+ // // }
49
+ // }
50
+ // return inOrder();
19
51
}
20
52
53
+ inOrder ( root ) ;
54
+
55
+ console . log ( visitedList ) ;
56
+ console . log ( list ) ;
21
57
// let min = Infinity, tmpMax = 0, tmpMin = Infinity;
22
58
// for (let i = 0; i < list.length; i++) {
23
59
// tmpMax = Math.max(tmpMax, list[i]);
0 commit comments