A árvore é a seguinte.
(A)
/ \
(B) (C)
/ \ /
(D) (E) (G)
/
(F)
A esquerda de A, o retorno do Nó pai ta funcionando beleza. Quando coloco C pra retornar o pai, retorna A beleza, já quando coloco G ele dar um erro. O código é o seguinte.
public void busca_pai(char dado){
System.out.println(this.busca_pai(dado, this.getRaiz()).getDado());
}
private Node busca_pai(char dado, Node no){
Node pai = no;
if (no != null) {
if ((no.getEloEsquerdo() != null) || (no.getEloDireito() != null)) {
if ((no.getEloEsquerdo().getDado() == dado) ||
(no.getEloDireito().getDado() == dado)) {
pai = no;
} else {
if (no.getEloEsquerdo().getDado() != dado) {
pai = busca_pai(dado, no.getEloEsquerdo());
} else {
if (no.getEloDireito().getDado() != dado) {
pai = busca_pai(dado, no.getEloDireito());
}
}
}
}
}
return pai;
}
Se alguém puder me ajudar ficaria grato.
Hélio jr.