1
-
2
1
const Compare = {
3
2
LESS_THAN : - 1 ,
4
3
BIGGER_THAN : 1 ,
@@ -65,7 +64,8 @@ class BinarySearchTree {
65
64
}
66
65
if ( this . compareFn ( key , node . key ) === Compare . LESS_THAN ) {
67
66
return this . searchNode ( node . left , key ) ;
68
- } if ( this . compareFn ( key , node . key ) === Compare . BIGGER_THAN ) {
67
+ }
68
+ if ( this . compareFn ( key , node . key ) === Compare . BIGGER_THAN ) {
69
69
return this . searchNode ( node . right , key ) ;
70
70
}
71
71
return true ;
@@ -142,7 +142,8 @@ class BinarySearchTree {
142
142
if ( this . compareFn ( key , node . key ) === Compare . LESS_THAN ) {
143
143
node . left = this . removeNode ( node . left , key ) ;
144
144
return node ;
145
- } if ( this . compareFn ( key , node . key ) === Compare . BIGGER_THAN ) {
145
+ }
146
+ if ( this . compareFn ( key , node . key ) === Compare . BIGGER_THAN ) {
146
147
node . right = this . removeNode ( node . right , key ) ;
147
148
return node ;
148
149
}
@@ -160,7 +161,8 @@ class BinarySearchTree {
160
161
if ( node . left == null ) {
161
162
node = node . right ;
162
163
return node ;
163
- } if ( node . right == null ) {
164
+ }
165
+ if ( node . right == null ) {
164
166
node = node . left ;
165
167
return node ;
166
168
}
@@ -172,19 +174,28 @@ class BinarySearchTree {
172
174
}
173
175
}
174
176
177
+ function getNodeHeight ( node ) {
178
+ if ( node == null ) {
179
+ return - 1 ;
180
+ }
181
+ console . log ( `key:${ ( node && node . key ) || undefined } ` ) ;
182
+ return Math . max ( getNodeHeight ( node . left ) , getNodeHeight ( node . right ) ) + 1 ;
183
+ }
175
184
const tree = new BinarySearchTree ( ) ;
176
- tree . insert ( 1 ) ;
177
- tree . insert ( 3 ) ;
178
185
tree . insert ( 8 ) ;
186
+ tree . insert ( 3 ) ;
179
187
tree . insert ( 10 ) ;
188
+ tree . insert ( 1 ) ;
189
+ tree . insert ( 6 ) ;
180
190
tree . insert ( 14 ) ;
181
191
tree . insert ( 13 ) ;
182
192
tree . insert ( 4 ) ;
183
- tree . insert ( 6 ) ;
184
193
tree . insert ( 7 ) ;
185
- document . write ( ` <br>中序遍历` ) ;
194
+ document . write ( ' <br>中序遍历' ) ;
186
195
tree . inOrderTraverse ( ( v ) => document . write ( `${ v } \n` ) ) ;
187
196
document . write ( '<br>前序遍历' ) ;
188
197
tree . preOrderTraverse ( ( v ) => document . write ( `${ v } \n` ) ) ;
189
198
document . write ( '<br>后序遍历' ) ;
190
199
tree . postOrderTraverse ( ( v ) => document . write ( `${ v } \n` ) ) ;
200
+
201
+ console . log ( getNodeHeight ( tree . root ) ) ;
0 commit comments