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.

lock iconGönderirken +14 gizli test

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 durumları

Durum 1

Durum 2

Durum 3

Girdi

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

Beklenen

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