Skip to content

Commit f0f080a

Browse files
committed
tree
1 parent f20dafc commit f0f080a

File tree

1 file changed

+19
-8
lines changed

1 file changed

+19
-8
lines changed

examples/chapter10/tree.js

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
const Compare = {
32
LESS_THAN: -1,
43
BIGGER_THAN: 1,
@@ -65,7 +64,8 @@ class BinarySearchTree {
6564
}
6665
if (this.compareFn(key, node.key) === Compare.LESS_THAN) {
6766
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) {
6969
return this.searchNode(node.right, key);
7070
}
7171
return true;
@@ -142,7 +142,8 @@ class BinarySearchTree {
142142
if (this.compareFn(key, node.key) === Compare.LESS_THAN) {
143143
node.left = this.removeNode(node.left, key);
144144
return node;
145-
} if (this.compareFn(key, node.key) === Compare.BIGGER_THAN) {
145+
}
146+
if (this.compareFn(key, node.key) === Compare.BIGGER_THAN) {
146147
node.right = this.removeNode(node.right, key);
147148
return node;
148149
}
@@ -160,7 +161,8 @@ class BinarySearchTree {
160161
if (node.left == null) {
161162
node = node.right;
162163
return node;
163-
} if (node.right == null) {
164+
}
165+
if (node.right == null) {
164166
node = node.left;
165167
return node;
166168
}
@@ -172,19 +174,28 @@ class BinarySearchTree {
172174
}
173175
}
174176

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+
}
175184
const tree = new BinarySearchTree();
176-
tree.insert(1);
177-
tree.insert(3);
178185
tree.insert(8);
186+
tree.insert(3);
179187
tree.insert(10);
188+
tree.insert(1);
189+
tree.insert(6);
180190
tree.insert(14);
181191
tree.insert(13);
182192
tree.insert(4);
183-
tree.insert(6);
184193
tree.insert(7);
185-
document.write(`<br>中序遍历`);
194+
document.write('<br>中序遍历');
186195
tree.inOrderTraverse((v) => document.write(`${v}\n`));
187196
document.write('<br>前序遍历');
188197
tree.preOrderTraverse((v) => document.write(`${v}\n`));
189198
document.write('<br>后序遍历');
190199
tree.postOrderTraverse((v) => document.write(`${v}\n`));
200+
201+
console.log(getNodeHeight(tree.root));

0 commit comments

Comments
 (0)