Menu
CoddyTech

Binary Tree Level Order Traversal

O array tree armazena uma árvore binária. 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 entradas extras -1 podem aparecer no final.

Retorne os valores dos nós nível por nível: uma lista por nível, da raiz até o nível mais profundo, cada uma com seus valores da esquerda para a direita.

Função

levelOrder(tree: integer-array) → integer-2d-array
treeinteger-array
a árvore na ordem de heap, com -1 para uma posição vazia
Retornainteger-2d-array
uma lista de valores por nível, começando pelo nível superior, cada uma da esquerda para a direita

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ó.
  • The array pode terminar com entradas extras de -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 = [4, 9, 2, -1, 6, 8, 5, -1, -1, 3]
Saída
[[4], [9, 2], [6, 8, 5], [3]]
Explicação
O índice 3 está vazio, então 9 tem apenas um filho à direita, 6. O terceiro nível contém 6, 8, 5, e o 3 no índice 9, abaixo de 6, está sozinho no quarto nível.
challenge icon

Para ir além

Você consegue retornar os níveis em ordem zigue-zague, o primeiro da esquerda para a direita, o segundo da direita para a esquerda e assim por diante, sem ordenar nenhum nível?

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

Teste #1

Teste #2

Teste #3

Argumento

tree = [4, 9, 2, -1, 6, 8, 5, -1, -1, 3]

Saída Esperada

[[4], [9, 2], [6, 8, 5], [3]]