public void insertar(int valor) { if (this.arbol == null) { // Crear la raiz. arbol = new ArbolNodo(valor); return; } else { ArbolNodo nuevo = new ArbolNodo(valor); ArbolNodo actual = arbol; ArbolNodo padre; while (true) { padre = actual; if (valor == actual.getValor()) { // Ya existe. return; } else if (valor < actual.getValor()) { // Izquerda actual = actual.getIzquerda(); if (actual == null) { // EncontrĂ³ un null, insertar el nodo nuevo. padre.setIzquerda(nuevo); return; } } else { // Derecha actual = actual.getDerecha(); if (actual == null) { // EncontrĂ³ un null, insertar el nodo nuevo. padre.setDerecha(nuevo); return; } } } } } final public class ArbolNodo { private ArbolNodo izquerda; private ArbolNodo derecha; private int valor; public ArbolNodo(int valor) { this.izquerda = null; this.derecha = null; this.valor = valor; } public ArbolNodo getIzquerda() { return izquerda; } public void setIzquerda(ArbolNodo izquerda) { this.izquerda = izquerda; } public ArbolNodo getDerecha() { return derecha; } public void setDerecha(ArbolNodo derecha) { this.derecha = derecha; } public int getValor() { return valor; } }