Menu
CoddyTech

Binary Tree Level Order Traversal

Ti viene fornito un albero binario memorizzato nell'array tree. La radice si trova all'indice 0, i figli del nodo all'indice i si trovano agli indici 2*i+1 (sinistro) e 2*i+2 (destro), -1 indica una posizione vuota e l'array può terminare con ulteriori voci -1.

Restituisci i valori dei nodi livello per livello: un elenco contenente il valore della radice, poi un elenco con i valori del livello successivo, da sinistra a destra, e così via fino al livello più profondo.

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 superiore, 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 tree ha almeno un nodo.
  • L'array può terminare con voci -1 aggiuntive dopo l'ultimo nodo.
  • Entrambi i figli di uno spazio vuoto sono vuoti a loro volta 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
La radice 4 ha come figli 9 e 2 agli indici 1 e 2. L'indice 3 è vuoto, quindi il terzo livello è 6 (indice 4, sotto 9), poi 8 e 5 (indici 5 e 6, sotto 2). Il 3 all'indice 9 è il figlio sinistro di 6, da solo al quarto livello.

lock icon+15 test nascosti all’invio

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
Casi di test

Caso 1

Caso 2

Caso 3

Input

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

Atteso

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