delete bts
by raviteja gunda
JavaScript
function delete_from_bst(root, values_to_be_deleted) {
// Write your code here.
if(root == null){
return root;
}
for(let i=0; i < values_to_be_deleted.length; i++){
var prev;
let nodes = search(root,values_to_be_deleted[i],prev);
let element = nodes[0];
prev = nodes[1];
console.log('element', element);
console.log('prev', prev);
if(element.left == null && element.right == null ){
if(prev.left == element){
prev.left = null;
}else{
prev.right = null;
}
}
else if(element.left != null && element.right != null){
let succ = successor(root,element);
console.log("root", root);
console.log("prev", prev);
console.log("succ", succ);
let max = maxNode(succ);
console.log("max", max);
prev.right = succ;
succ.left = element.left;
max.right = element.right;
}
else {
console.log('third if');
if(element.left != null ){
prev.left = element.left;
}else if(element.right != null){
prev.right = element.right;
}
}
}
return root;
}
function maxNode(succ) {
console.log(succ);
if(succ.right == null) {
return succ;
}
while(succ.right != null) {
return maxNode(succ.right);
}
return succ;
}
function search(root,value,prev){
if(root == null){
return false;
}
if(root.value == value){
return [root, prev];
}else if(value < root.value){
prev = root;
return search(root.left,value, prev);
}else{
prev = root;
return search(root.right,value, prev);
}
}
function successor(root,value){
if(root == null){
return;
}
if(value.right != null){
let curr =...