Como borrar nodos en Arboles binarios Java
Hola. Necesito hacer el borrado de los nodos de un árbol binario en java. Como le podría hacer para mover los apuntadores del árbol al hacer el borrado.
El código que tengo es
public void delete(Node n) {
Node traverser = null;
Node current = root;
char side = ' ';
//traverser se queda en el nodo padre de current(que es n)
while (current != null && current != n) {
traverser = current;
if (n.data < current.data) {
current = current.left;
side = 'l';
} else {
current = current.right;
side = 'r';
}
}
//si es hoja, sólo ajustamos el apuntador del padre a null
//cuidando si es el hijo izq o der
if (n.isLeaf()) {
if (side == 'l') {
traverser.left = null;
} else {
traverser.right = null;
}
}
System.out.println("aout");
if (current.hasLeft() && side == 'l') {
traverser.left = current.left;
} else if (current.hasLeft() && side == 'r') {
traverser.right = current.left;
} else if (current.hasRight() && side == 'l') {
traverser.left = current.right;
} else if (current.hasRight() && side == 'r') {
traverser.right = current.right;
}
}