Menu
CoddyTech

Symmetric Tree

Seviye sırasına göre tree dizisinde saklanan bir ikili ağaç veriliyor. Kök 0 indeksinde bulunur; i indeksindeki düğümün çocukları 2*i+1 (sol) ve 2*i+2 (sağ) indekslerinde bulunur; boş bir konumu -1 belirtir ve dizinin sonunda fazladan -1 girdileri olabilir. Ağaç, kökten geçen dikey bir çizgiye göre kendi ayna görüntüsüyse true, değilse false döndürün. Hem şekil hem de değerler eşleşmelidir.

Fonksiyon

isSymmetric(tree: integer-array) → boolean
treeinteger-array
ikili ağacı seviye sırasına göre, boş konumlar için -1 kullanarak
Döndürürboolean
ağaç kendi ayna görüntüsüyse true, değilse false

Kısıtlar

  • 1 ≤ tree.length ≤ 32767
  • Her tree[i], -1 ya da 0 ≤ tree[i] ≤ 1000 koşulunu sağlayan bir değerdir.
  • tree[0] asla -1 değildir, dolayısıyla ağacın 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 = [1, 2, 2, 3, 4, 4, 3]
Çıktı
true
Açıklama
Ağacı ortadan ikiye katlayın. 1 ve 2 indekslerindeki iki 2 birleşir, 3 ve 6 indekslerindeki dıştaki 3ler birleşir ve 4 ile 5 indekslerindeki içteki 4ler birleşir.

lock iconGönderirken +16 gizli test

challenge icon

Ek soru

Şekil kendi içinde yansıyorsa ancak bazı değerler aynı değilse, ağacı simetrik hâle getirmek için en az kaç düğüm değerini değiştirmelisiniz?

Kodu sıfırla
def isSymmetric(tree):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

tree = [1, 2, 2, 3, 4, 4, 3]

Beklenen

true