Las clases objeto que uso son: BinaryNode, Key y Error (es uno propio, no el de java.lang). El código sigue así:
Código:
Hasta acá vamos bien.. el siguiente método recurrente, contiene 4 subcasos, siempre y cuando el nodo que estamos trabajando NO sea nulo (caso de corte). El problema está en solo el siguiente caso:// Es un método para eliminación de un nodo de un Árbol BB, entra una clave "Key" y un manejo de errores. public void delete(Key key, Error e) { // Si el objeto (árbol) está vacío, establece un error y sale. if (this.isEmpty()) { e.setCode(7); System.out.println(e.getMessage()); // Si no está vacío, llama a un método privado que recibe un "BinaryNode" para trabajar con él (ser eliminado). } else // El método "search" busca el nodo y trae la referencia. this.deleteMethod(this.search(this.root, key, e)); }
Código:
Si en lugar de establecerlo en null al elemento, hago lo siguiente: // Método privado para eliminar el nodo. private void deleteMethod(BinaryNode node) { if (node != null) { if (node.getLeft() == null && node.getRight() == null) { // El "BinaryNode" tiene un atributo "Element" contenedor de un objeto. Entonces, aquí lo establezco en nulo, ocasionando un NullPointerException. node.setElement(null); // ..el código continúa, aunque no es de importancia.
Código:
el nodo nunca se elimina.node = null
¿Alguna solución?
Gracias, saludos!!