Arvore binaria

Como eu faço para saber a altura de uma arvore binaria? Nao quero algoritimo e sim a logica de como posso fazer imaginando que minha arvore tenha varios nós

Alguem ajuda

A altura de uma árvore binária é a quantidade de nós entre o nó raiz (incluso) e a folha mais distante.

isso eu sei eu quero saber a logica do algoritimo

Você precisa iterar entre os filhos de cada nó, começando pelo nó raiz, até encontrar um nó cujos filhos sejam nulos. Pode fazer isso iterativa ou recursivamente.

vc pode criar uma variavel para acumular 1 para cada nivel da arvore…

como posso fazer iterativamente sem usar metodo recursivo?

A altura de uma árvore binária perfeitamente balanceada é um pouco superior a log n / log 2. Mas acho que não é isso que você quer, já que você pode ter árvores binárias quaisquer, não balanceadas.

Para percorrer uma árvore, você ou precisa de um método recursivo (que normalmente é mais fácil), ou então de uma pilha - que indiretamente implementa o armazenamento de alguns dados que já seriam implicitamente armazenados em um método recursivo. Portanto, é mais fácil pensar recursivamente.

Um jeito de pensar recursivamente:

  • a altura de uma árvore binária é 1 + o máximo da altura das duas sub-árvores.
  • um nó sem sub-árvores tem altura 1.