Menu
CoddyTech

Maximum Depth of Binary Tree

Você recebe uma árvore binária armazenada no array tree em ordem por níveis. A raiz fica no índice 0, os filhos do nó no índice i ficam em 2*i+1 (à esquerda) e 2*i+2 (à direita), -1 marca uma posição vazia, e o array pode terminar com entradas extras -1. Retorne a profundidade máxima da árvore: o número de nós no caminho mais longo da raiz até uma folha.

Função

maxDepth(tree: integer-array) → integer
treeinteger-array
a árvore binária em ordem por nível, com -1 para uma posição vazia
Retornainteger
o número de nós no caminho mais longo da raiz até uma folha

Restrições

  • 1 ≤ tree.length ≤ 32767
  • Cada tree[i] é -1 ou um valor com 0 ≤ tree[i] ≤ 1000.
  • tree[0] nunca é -1, então a árvore tem pelo menos um nó.
  • O array pode terminar com entradas -1 extras após o último nó.
  • Ambos os filhos de um espaço vazio também estão vazios, e a profundidade é no máximo 14.

Exemplos

Entrada
tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]
Saída
4
Explicação
O caminho mais longo é 5, 8, 3, 6 (índices 0, 1, 4, 9), que contém 4 nós. O caminho que passa por 1 termina após 2 nós.
challenge icon

Para ir além

Como você retornaria os valores de um caminho mais longo da raiz até uma folha, além de seu comprimento? Se vários caminhos tiverem o mesmo comprimento, qual deles você retornaria?

Redefinir código
def maxDepth(tree):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumento

tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]

Saída Esperada

4