Menu
CoddyTech

Binary Tree Right Side View

L'array root contiene un albero binario. La radice si trova all'indice 0, i figli del nodo all'indice i si trovano agli indici 2*i+1 (sinistra) e 2*i+2 (destra), -1 indica una posizione vuota e possono esserci ulteriori valori -1 alla fine.

Osserva l'albero dal lato destro. Ogni livello mostra esattamente un nodo, quello più a destra, e nasconde gli altri. Elenca quei valori dal livello della radice fino al livello più profondo.

Funzione

rightSideView(root: integer-array) → integer-array
rootinteger-array
l'albero in ordine di heap, con -1 per una posizione vuota
Restituisceinteger-array
il valore più a destra di ogni livello, partendo dal livello superiore

Vincoli

  • 1 ≤ root.length ≤ 32767
  • Ogni root[i] è -1 oppure un valore con 0 ≤ root[i] ≤ 104.
  • I valori dei nodi sono distinti.
  • root[0] non è mai -1, quindi l'albero ha almeno un nodo.
  • L'array può terminare con ulteriori voci -1 dopo l'ultimo nodo.
  • Entrambi i figli di uno spazio vuoto sono vuoti e l’albero ha al massimo 14 livelli.

Esempi

Input
root = [5, 2, 9, 7, 4, -1, 1, -1, 3]
Output
[5, 9, 1, 3]
Spiegazione
Da destra vedi 5, 9 e 1 (indice 6). Il quarto livello contiene solo 3, all'indice 8 sotto 7 nel sottoalbero sinistro. Nulla sul lato destro arriva così in profondità, quindi 3 è visibile.
challenge icon

Per approfondire

Come otterresti la vista del lato destro di un albero in cui ogni nodo può avere un numero qualsiasi di figli, memorizzati in un elenco da sinistra a destra?

Ripristina il codice
def rightSideView(root):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomento

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

Output atteso

[5, 9, 1, 3]