Para borrar nodos yo hice esto (siempre con arboles generales, binarios o no):
ListaDeHijos = nodo.obtenerHijos();
padreDeNodo=nodo.obtenerPadre();
posicionDeNodo=nodo.obtenerPosicionEnLista();
//borrar el nodo
nodo.establecerHijos(null);
nodo.establecerPadre(null);
//opcion1: un hijo (el primero) toma el lugar del padre
if (listaDeHijos.isEmpty()==false)
{
nuevoHijo=listaDeHijos.obtenerPrimero();
listaDeHijos.eliminarNodo(listaDeHijos.obtenerPrimero());
nuevoHijo.establecerHijos(listaDeHijos);
Para cada nodo de listaDeHijos hacer
nodo.establecerPadre(nuevoHijo);
padreDeNodo.obtenerHijos().insertarNodoEnPosicion(posicionDeNodo,nuevoHijo);
//opcion2: todos los hijos pasan a ser hijos del padre del eliminado
/*
* padreDeNodo.obtenerHijos().concatenarListas(listaDeHijos); //agrega los nodos hijos a los del padre del eliminado
* Para cada nodo de listaDeHijos hacer
* nodo.establecerPadre(nuevoHijo);
*/
Para visualizarlo existe un algoritmo muy conocido llamado recorridoEnOrden. Es asi (para arboles binarios, pero se puede expandir, solo hay que pensar un cachin) :
recorridoEnOrden(nodo v)
if v tiene un hijo izquierdo
recorridoEnOrden(v.hijoIzquierdo());
hacer algo en v
if v tiene un hijo derecho
recorridoEnOrden(v.hijoDerecho());
Para dibujarlo, crea un arreglo con todos los nodos visitados en el orden obtenido por recorridoEnOrden. Si lo haces bien, el orden sera de izquierda a derecha en la coordenada x. Luego, modifica el paintComponent de algun elemento (un panel, por ejemplo) y pinta ovalos: la coordenada
x del ovalo sera la ubicacion en el arreglo (+1 para ser exactos), y la coordenada
y sera el resultado de obtenerAltura(nodo), función recursiva que retorna la altura de un nodo y se define:
obtenerAltura(Nodo v)
si isRoot(v)
retornar 0
sino retornar 1 + obtenerAltura(v.parent());
Entendeme que te paso idea y algoritmos y no codigo para ser mas claro en la explicacion y ademas porque seguramente tu implementacion requiere datos precisos distintos a los mios (o no, pero es probable que si). Si lo que quieres es algo hecho puedes buscar en internet, o bueno, si insistes te lo paso.