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.
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 #1

Test #2

Test #3

Argüman

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

Beklenen Çıktı

true