Hola CalgaryCorpus,
Gracias por responder. La primera manera creo que es bastante compleja de realizar, no? por lo menos a simple vista parece así, si estoy equivocado por favor corrigeme porque estaría muy interesado en poder hacerlo funcionar.
En lo de que es posible que no libere memoria y lo que este es accediendo a esa memoria creo que no es. La liberacion la tengo que realizar al finalizar el programa, es decir, que después no tengo que realizar nada mas y para liberar lo que hago es lo siguiente: Tengo una clase arbol, en la cual tengo una raiz que es de tipo nodoArbol, y este clase nodoArbol consta de su hijo derecho, su hijo izquierdo, un valor de tipo string y una variable info de tipo generico. Resulta que el tipo generico lo he instanciado a una lista, la cual tiene su propia funcion de eliminar que elimina toda la lista(esta funcion estoy casi seguro que funciona bien). Entonces lo que hago para eliminar es: llamo a la funcion eliminar de la clase arbol, la cual llama recursivamente a su hijo izquierdo, despues a su hijo derecho, despues llamo a la funcion eliminar de la lista (bueno, del valor generico, pero en mi caso lo he instanciado a una lista), y luego hago delete del nodoarbol. ¿Es correcto?
Si encuentras algun fallo por favor hazmelo saber.
Muchas gracias.
Saludos