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 nos índices 2*i+1 (esquerdo) e 2*i+2 (direito), -1 indica 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
árvore binária em ordem por níveis, 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 vetor pode terminar com entradas extras -1 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 para após 2 nós.

lock icon+13 testes ocultos ao enviar

challenge icon

Para ir além

Como você retornaria os valores de um caminho mais longo da raiz até uma folha, e não apenas seu comprimento? Se vários caminhos empatarem, qual deles você retornaria e como especificaria isso no contrato?

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

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

4