Ejercicio - Borrado en un árbol binario de búsqueda

Primer caso: el nodo a borrar no tiene hijos

Supongamos que tenemos el siguiente árbol de búsqueda binario, del cual quiero eliminar el número 8. El árbol tiene un nodo con el valor 8, y ese nodo no tiene hijos.

Árbol que contiene un 8, y el 8 no tiene hijos

Segundo caso: el nodo a borrar tiene un hijo

Ahora voy a eliminar el 10 del siguiente árbol de búsqueda binario:

Árbol que contiene un 10, el cual tiene hijo derecho, pero no izquierdo

Así me queda el "árbol":

Árbol igual que el anterior, pero habiendo eliminado el 10

Tercer caso: el nodo a borrar tiene dos hijos

Volvamos al árbol original. Ahora quiero eliminar el 7:

Árbol cuya raiz es 7, y tiene dos hijos

Oops! ¿Cómo arreglo esto para que vuelva a ser un árbol?

"Árbol" sin raíz, con dos hijos huérfanos

Tendremos que colocar otro nodo del árbol en su lugar.