Calcular a altura de uma árvore binária com nós folha formando uma lista circular duplamente ligada

Google Translate Icon

Escreva um algoritmo para calcular a altura de uma árvore binária com nós folha formando uma lista duplamente ligada circular onde os ponteiros esquerdo e direito do nó folha atuarão como um ponteiro anterior e seguinte da lista duplamente ligada circular, respectivamente.

Por exemplo, considere a seguinte árvore binária. Os nós folha são 7, 5 e 6, conectados usando os ponteiros esquerdo e direito e formam uma lista circular duplamente ligada.

Calculate Height of a Binary Tree

Pratique este problema

Sabemos que o altura de uma árvore binária é o número total de nós presentes no caminho mais longo da raiz até um nó folha. A ideia é atravessar a árvore em um moda pós-venda e calcule a altura da subárvore esquerda e direita. A altura de uma subárvore enraizada em qualquer nó será um a mais que a altura máxima de sua subárvore esquerda e direita. Aplique recursivamentemente esta propriedade a todos os nós da árvore de forma baixo para cima (modo pós-ordem) e retorne a altura máxima da subárvore enraizada naquele nó.

Para árvores binárias típicas, os filhos esquerdo e direito de um nó folha são ponteiros nulos. Mas aqui, o filho esquerdo e direito dos nós folha agem como o ponteiro anterior e seguinte da lista circular duplamente vinculada. Para que um nodo seja um nodo folha, verifique se a esquerda direita e a esquerda direita estão apontando para o próprio nodo.

 
Essa abordagem é demonstrada abaixo em C, Java e Python:

C


Download  Executar código

Resultado:

The height of the binary tree is 4

Java


Download  Executar código

Resultado:

The height of the binary tree is 4

Python


Download  Executar código

Resultado:

The height of the binary tree is 4

A complexidade de tempo da solução acima é O(n), Onde n é o número total de nós na árvore binária. O espaço auxiliar requerido pelo programa é O(h) para a ligue para Stack, onde h é a altura da árvore.

 
Autor: Aditya Goel

Avalie esta postagem

Classificação média 4.82/5. Contagem de votos: 153

Sem votos até agora! Seja o primeiro a avaliar este post.

Lamentamos que este post não tenha sido útil para você!

Diga-nos como podemos melhorar este post?




Obrigado por ler.

Por favor, use nosso compilador online para postar código em comentários usando C, C++, Java, Python, JavaScript, C#, PHP e muitas outras linguagens de programação populares.

Como nós? Indique-nos aos seus amigos e ajude-nos a crescer. Codificação feliz :)



Se inscrever
Notificar de
guest
1 Comente
Mais votados
O mais novo Mais antigo
Comentários em linha
Ver todos os comentários
NÃO siga este link ou você será banido do site!