Data Structures: Delete a Leaf Node in a Binary Search Tree
This commit is contained in:
parent
f02280cef3
commit
c37135f9ac
32
Data Structures/bstDeleteLeafNode.js
Normal file
32
Data Structures/bstDeleteLeafNode.js
Normal file
@ -0,0 +1,32 @@
|
||||
// https://www.freecodecamp.org/learn/coding-interview-prep/data-structures/delete-a-leaf-node-in-a-binary-search-tree
|
||||
|
||||
var displayTree = (tree) => console.log(JSON.stringify(tree, null, 2));
|
||||
function Node(value) {
|
||||
this.value = value;
|
||||
this.left = null;
|
||||
this.right = null;
|
||||
}
|
||||
|
||||
function BinarySearchTree() {
|
||||
this.root = null;
|
||||
// Only change code below this line
|
||||
this.remove = (value) => {
|
||||
let parent = null;
|
||||
let node = this.root;
|
||||
while (node !== null && node.value !== value) {
|
||||
parent = node;
|
||||
if (node.value < value) {
|
||||
node = node.right;
|
||||
} else {
|
||||
node = node.left;
|
||||
}
|
||||
}
|
||||
if (node === null) return null;
|
||||
if (parent === null) this.root = null;
|
||||
else if (parent.value < value) {
|
||||
parent.right = null;
|
||||
} else {
|
||||
parent.left = null;
|
||||
}
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user