Menu
CoddyTech

Invert Binary Tree

Otrzymujesz drzewo binarne zapisane w tablicy tree w kolejności poziomami. 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.

Odwróć drzewo: zamień lewe i prawe dziecko każdego węzła, tak aby całe drzewo stało się swoim lustrzanym odbiciem. Zwróć odwrócone drzewo w tej samej postaci, bez wpisów -1 na końcu.

Funkcja

invertTree(tree: integer-array) → integer-array
treeinteger-array
drzewo binarne w kolejności poziomami, z -1 oznaczającym puste miejsce
Zwracainteger-array
lustrzane odbicie drzewa w kolejności poziomami, bez końcowych wpisów -1

Ograniczenia

  • 1 ≤ tree.length ≤ 16383
  • Każde 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 kończyć się dodatkowymi wpisami -1 za ostatnim węzłem.
  • Oba dzieci pustej pozycji również są puste, a głębokość wynosi najwyżej 14.

Przykłady

Wejście
tree = [5, 3, 8, 1, 4, -1, 9]
Wyjście
[5, 8, 3, 9, -1, 4, 1]
Wyjaśnienie
Dzieci korzenia 3 i 8 zamieniają się miejscami. Pod nimi 1 i 4, które znajdowały się poniżej 3, wracają jako 4 i 1, a 8, które miało tylko prawe dziecko 9, ma je teraz po lewej stronie.

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

challenge icon

Pytanie dodatkowe

Jak sprawdzić, czy drzewo jest swoim własnym odbiciem lustrzanym, używając tych samych par indeksów, ale bez tworzenia odwróconej kopii?

Zresetuj kod
def invertTree(tree):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

[5, 8, 3, 9, -1, 4, 1]