Menu
CoddyTech

Left View of Binary Tree

Hai un albero binario rappresentato dall’array root in ordine di heap: la radice si trova all’indice 0, i figli dell’indice i si trovano agli indici 2*i+1 (sinistro) e 2*i+2 (destro), e -1 indica una posizione vuota. L’array può terminare con voci -1 aggiuntive.

Mettiti a sinistra dell’albero. A ogni livello vedi un nodo, quello più a sinistra; il resto del livello è nascosto dietro di esso. Restituisci i valori che vedi, dal livello più alto a quello più basso.

Funzione

leftView(root: integer-array) → integer-array
rootinteger-array
l'albero in ordine heap, con -1 per una posizione vuota
Restituisceinteger-array
il valore più a sinistra di ogni livello, a partire 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 voci -1 aggiuntive dopo l’ultimo nodo.
  • Entrambi i figli di una posizione vuota sono vuoti anche loro, e l'albero ha al massimo 14 livelli.

Esempi

Input
root = [3, 8, 5, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, 1]
Output
[3, 8, 6, 1]
Spiegazione
8 è una foglia, quindi il terzo e il quarto livello contengono solo 6 (indice 6) e 1 (indice 13), entrambi sotto il figlio destro 5. Li vedi comunque: [3, 8, 6, 1].
challenge icon

Per approfondire

Il livello d riempie gli indici da 2^d-1 a 2^(d+1)-2. Riesci a costruire la vista scorrendo quegli intervalli, senza usare una coda o la ricorsione? Quanto costa su un array con padding?

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

Test #1

Test #2

Test #3

Argomento

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

Output atteso

[3, 8, 6, 1]