Menu
CoddyTech

Binary Tree Level Order Traversal

Otrzymujesz drzewo binarne zapisane w tablicy tree. Korzeń znajduje się pod indeksem 0, dzieci węzła o indeksie i znajdują się pod indeksami 2*i+1 (lewe) i 2*i+2 (prawe), -1 oznacza puste miejsce, a tablica może kończyć się dodatkowymi wpisami -1.

Zwróć wartości węzłów poziomami: listę zawierającą wartość korzenia, następnie listę z wartościami poziom niżej, od lewej do prawej, i tak dalej aż do najgłębszego poziomu.

Funkcja

levelOrder(tree: integer-array) → integer-2d-array
treeinteger-array
drzewo w kolejności kopcowej, z wartością -1 w pustym miejscu
Zwracainteger-2d-array
jedna lista wartości na poziom, najpierw poziom najwyższy, każda od lewej do prawej

Ograniczenia

  • 1 ≤ tree.length ≤ 32767
  • Każdy element tree[i] ma wartość -1 lub wartość spełniającą warunek 0 ≤ tree[i] ≤ 1000.
  • tree[0] nigdy nie jest równe -1, więc drzewo ma co najmniej jeden węzeł.
  • Tablica może zawierać dodatkowe wpisy -1 po ostatnim węźle.
  • Oboje dzieci pustego miejsca również są puste, a głębokość wynosi najwyżej 14.

Przykłady

Wejście
tree = [4, 9, 2, -1, 6, 8, 5, -1, -1, 3]
Wyjście
[[4], [9, 2], [6, 8, 5], [3]]
Wyjaśnienie
Korzeń 4 ma dzieci 9 i 2 na indeksach 1 i 2. Indeks 3 jest pusty, więc na trzecim poziomie znajduje się 6 (indeks 4, pod 9), a następnie 8 i 5 (indeksy 5 i 6, pod 2). 3 na indeksie 9 jest lewym dzieckiem 6 i znajduje się samotnie na czwartym poziomie.

lock icon+15 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Czy możesz zwrócić poziomy w kolejności zygzakowatej: pierwszy od lewej do prawej, drugi od prawej do lewej i tak dalej, bez sortowania żadnego poziomu?

Zresetuj kod
def levelOrder(tree):
    # Napisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

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