Menu
CoddyTech

Invert Binary Tree

Seviye sırasına göre dizide saklanan bir ikili ağaç alıyorsun: tree. Kök 0 indeksinde bulunur, i indeksindeki düğümün çocukları 2*i+1 (sol) ve 2*i+2 (sağ) indekslerinde bulunur, -1 boş bir yeri belirtir ve dizinin sonunda fazladan -1 girdileri olabilir.

Ağacı tersine çevir: Her düğümün sol ve sağ çocuklarını değiştir, böylece ağacın tamamı ayna görüntüsü hâline gelsin. Tersine çevrilmiş ağacı aynı biçimde, sonunda hiç -1 girdisi olmayacak şekilde döndür.

Fonksiyon

invertTree(tree: integer-array) → integer-array
treeinteger-array
ikili ağacı düzey sırasına göre, boş bir yer için -1 kullanarak
Döndürürinteger-array
sonunda -1 girişleri olmadan, seviyelere göre aynalanmış ağaç

Kısıtlar

  • 1 ≤ tree.length ≤ 16383
  • Her tree[i], -1 ya da 0 ≤ tree[i] ≤ 1000 koşulunu sağlayan bir değerdir.
  • tree[0] hiçbir zaman -1 değildir; bu nedenle tree'de en az bir düğüm vardır.
  • Dizi, son düğümden sonra fazladan -1 girdileriyle bitebilir.
  • Boş bir noktanın her iki çocuğu da boştur ve derinlik en fazla 14 olur.

Örnekler

Girdi
tree = [5, 3, 8, 1, 4, -1, 9]
Çıktı
[5, 8, 3, 9, -1, 4, 1]
Açıklama
Kökün çocukları olan 3 ve 8 yer değiştirir. Bunların altında, 3'ün altındaki 1 ve 4, 4 ve 1 olarak geri gelir; yalnızca sağ çocuğu 9 olan 8'in ise artık bu çocuğu solundadır.
challenge icon

Ek soru

Ağacın ters çevrilmiş bir kopyasını oluşturmadan, aynı indeks çiftlerini kullanarak kendi aynadaki yansıması olup olmadığını nasıl kontrol edersin?

Kodu sıfırla
def invertTree(tree):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argüman

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

Beklenen Çıktı

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