Binary HEIGHTdelete
Binary HEIGHTdelete
//
}
}
}
public int delete(Node parent , Node root,int ele) {
if(root==null)return -1;
int temp=0;
if(root.data>ele) {
parent=root;
delete(parent, root.left, ele);
}else if(root.data<ele) {
parent=root;
delete(parent, root.right, ele);
}else {
if(root.right==null && root.left==null) {
if(parent.left==root)parent.left=null;
else parent.right = null;
}
if(root.left==null) {
if(parent.left==root)parent.left=root.right;
else parent.right=root.right;
}
if(root.right==null) {
if(parent.left==root)parent.left=root.left;
else parent.right=root.left;
}
if(root.left != null&& root.right!= null) {
temp= root.data;
int val = largest(root.left);
root.data=val;
delete(root, root.left, val);
}
return temp;
}
private int largest(Node root) {
if(root.right != null)return largest(root.right);
return root.data;
}
public void inorder(Node root) {
if(root.left!=null)inorder(root.left);
System.out.println(root.data);
if(root.right!=null)inorder(root.right);
}
public void print() {
inorder(root);
}
public void deletefun() {
delete(null, root, 15);
}
}
//