Gostaria de fazer o caminhamento pré-ordem usando pilha, mas não consigo elaborar uma lógica para isso.
O que eu consegui fazer foi isso:LinkedList<Nodo> pilha = new LinkedList<Nodo>();
public void preOr(){
pilha.add(raiz);
while (!pilha.isEmpty()) {
Nodo n = pilha.removeFirst();
System.out.println("No: " + n.getItem().getValor());
if (n.getNodoEsquerdo() != null){
pilha.addFirst(n.getNodoEsquerdo());
}
else if(n.getNodoDireito() != null){
pilha.addFirst(n.getNodoDireito());
}
}
}
O que eu não consigo é fazer ele voltar para o nó direito quando o esquerdo for nulo.