Menu
CoddyTech

Binary Tree Level Order Traversal

L'array tree 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 voci -1 in coda.

Restituisci i valori dei nodi livello per livello: un elenco per ogni livello, dalla radice fino al livello più profondo, ciascuno con i suoi valori da sinistra a destra.

Funzione

levelOrder(tree: integer-array) → integer-2d-array
treeinteger-array
l'albero in ordine di heap, con -1 per una posizione vuota
Restituisceinteger-2d-array
un elenco di valori per livello, prima il livello più alto, ciascuno da sinistra a destra

Vincoli

  • 1 ≤ tree.length ≤ 32767
  • Ogni tree[i] è -1 oppure un valore con 0 ≤ tree[i] ≤ 1000.
  • tree[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 casella vuota sono vuoti anch’essi, e la profondità è al massimo 14.

Esempi

Input
tree = [4, 9, 2, -1, 6, 8, 5, -1, -1, 3]
Output
[[4], [9, 2], [6, 8, 5], [3]]
Spiegazione
L'indice 3 è vuoto, quindi 9 ha solo un figlio destro, 6. Il terzo livello è composto da 6, 8, 5 e dal 3 all'indice 9, sotto 6, che è da solo al quarto livello.
challenge icon

Per approfondire

Puoi restituire i livelli in ordine a zigzag, il primo da sinistra a destra, il secondo da destra a sinistra e così via, senza ordinare alcun livello?

Ripristina il codice
def levelOrder(tree):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomento

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

Output atteso

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