Menu
CoddyTech

Bottom View of Binary Tree

O array root contém uma árvore binária: a raiz no índice 0, os filhos do índice i em 2i+1 (esquerda) e 2i+2 (direita), -1 para uma posição vazia e, possivelmente, entradas extras -1 no final.

A raiz está na coluna 0; um passo para a esquerda move uma coluna à esquerda, e um passo para a direita move uma coluna à direita. Visto de baixo, cada coluna mostra seu nó mais profundo e, em caso de empate, o último nesse nível quando lido da esquerda para a direita (o índice maior). Retorne os valores que você vê, começando pela coluna mais à esquerda.

Função

bottomView(root: integer-array) → integer-array
rootinteger-array
a árvore em ordem de heap, com -1 para um espaço vazio
Retornainteger-array
o valor visto de baixo em cada coluna, começando pela coluna mais à esquerda

Restrições

  • 1 ≤ root.length ≤ 32767
  • Cada root[i] é -1 ou um valor com 0 ≤ root[i] ≤ 104, e nenhum valor aparece duas vezes.
  • root[0] nunca é -1, então a árvore tem pelo menos um nó.
  • The array pode terminar com entradas -1 extras após o último nó.
  • Ambos os filhos de um ponto vazio também estão vazios, e a árvore tem no máximo 14 níveis.

Exemplos

Entrada
root = [5, 2, 9, 4, 7, 1, 6]
Saída
[4, 2, 1, 9, 6]
Explicação
A coluna 0 contém 5 e, dois níveis abaixo, 7 (índice 4) e 1 (índice 5). 1 aparece depois no nível compartilhado, então é exibido. As colunas -2, -1, 1 e 2 contêm 4, 2, 9 e 6.
challenge icon

Para ir além

Se um empate no nível mais profundo de uma coluna deve retornar todos os nós empatados, da esquerda para a direita, como a versão em largura primeiro mudaria? O que a coluna 0 do exemplo 1 retornaria?

Redefinir código
def bottomView(root):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumento

root = [5, 2, 9, 4, 7, 1, 6]

Saída Esperada

[4, 2, 1, 9, 6]