A altura de uma árvore binária é a distância do nó raiz ao filho do nó que está mais distante da raiz.
Abaixo está um exemplo:
2 <-- root: Height 1
/ \
7 5 <-- Height 2
/ \ \
2 6 9 <-- Height 3
/ \ /
5 11 4 <-- Height 4
Altura da árvore binária: 4
Definição de uma árvore binária
Uma árvore é um objeto que contém um valor inteiro assinado e duas outras árvores ou ponteiros para eles.
A estrutura da estrutura da árvore binária é semelhante à seguinte:
typedef struct tree
{
struct tree * l;
struct tree * r;
int v;
} tree;
O desafio:
Entrada
A raiz de uma árvore binária
Resultado
O número que representa a altura de uma árvore binária
Supondo que você receba a raiz de uma árvore binária como entrada, escreva o programa mais curto que calcula a altura de uma árvore binária e retorna a altura. O programa com menos quantidade de bytes (espaços em branco de contabilidade) vence.
h
. Talvez seja melhor definir uma estrutura específica feita apenas de listas para o objetivo deste desafio.
[root_value, left_node, right_node]
que cada uma left_node
e right_node
também são árvores binárias aceitáveis? Será trivial em muitos idiomas, mas poderá ser divertido em alguns outros.
a tree is an object that contains a value and either two other trees or pointers to them
. Uma definição que inclua idiomas sem objetos também seria boa.