Menu
CoddyTech

Binary Tree Right Side View

O array root contém uma árvore binária. A raiz fica no índice 0, os filhos do nó no índice i ficam em 2*i+1 (esquerdo) e 2*i+2 (direito), -1 marca uma posição vazia, e entradas extras -1 podem aparecer no final.

Observe a árvore pelo lado direito. Cada nível mostra exatamente um nó, o que está mais à direita, e oculta os demais. Liste esses valores do nível da raiz até o nível mais profundo.

Função

rightSideView(root: integer-array) → integer-array
rootinteger-array
a árvore na ordem de heap, com -1 para uma posição vazia
Retornainteger-array
o valor mais à direita de cada nível, começando pelo nível superior

Restrições

  • 1 ≤ root.length ≤ 32767
  • Cada root[i] é -1 ou um valor com 0 ≤ root[i] ≤ 104.
  • Os valores dos nós são distintos.
  • root[0] nunca é -1, então a árvore tem pelo menos um nó.
  • A matriz 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 árvore tem no máximo 14 níveis.

Exemplos

Entrada
root = [5, 2, 9, 7, 4, -1, 1, -1, 3]
Saída
[5, 9, 1, 3]
Explicação
Pela direita, você vê 5, 9 e 1 (índice 6). O quarto nível contém apenas 3, no índice 8, abaixo de 7, na subárvore esquerda. Nada à direita chega tão fundo, então 3 fica visível.
challenge icon

Para ir além

Como você obteria a vista do lado direito de uma árvore em que cada nó pode ter qualquer número de filhos, armazenados em uma lista da esquerda para a direita?

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

Teste #1

Teste #2

Teste #3

Argumento

root = [5, 2, 9, 7, 4, -1, 1, -1, 3]

Saída Esperada

[5, 9, 1, 3]