Menu
CoddyTech

Balanced Binary Tree

root dizisi bir ikili ağaç tutar. Kök 0 indeksindedir; i indeksindeki düğümün çocukları 2*i+1 (sol) ve 2*i+2 (sağ) indekslerindedir; boş bir yeri -1 belirtir ve sonda fazladan -1 girdileri bulunabilir.

Ağaç yükseklik dengeliyse, yani her düğümde sol ve sağ alt ağaçların yükseklikleri arasındaki fark en fazla 1 ise true, aksi hâlde false döndürün. Bir alt ağacın yüksekliği, aşağı doğru en uzun yol üzerindeki düğüm sayısıdır; boş bir alt ağacın yüksekliği 0’dır.

Fonksiyon

isBalanced(root: integer-array) → boolean
rootinteger-array
ikili ağacı seviye sırasına göre, boş yerler için -1 kullanarak
Döndürürboolean
Her düğümün iki alt ağacının yükseklikleri en fazla 1 farklıysa true, aksi hâlde false

Kısıtlar

  • 1 ≤ root.length ≤ 32767
  • Her root[i], -1 ya da 0 ≤ root[i] ≤ 105 koşulunu sağlayan bir değerdir.
  • root[0] hiçbir zaman -1 değildir, bu nedenle ağacın en az bir düğümü vardır.
  • Dizi, son düğümden sonra fazladan -1 girdileriyle bitebilir.
  • Boş bir noktanın iki çocuğu da boştur ve derinlik en fazla 14'tür.
  • Düğüm değerleri birbirinden farklıdır.

Örnekler

Girdi
root = [5, 2, 9, -1, -1, 7, 11]
Çıktı
true
Açıklama
Kökün sol alt ağacı, tek düğüm olan 2'dir ve yüksekliği 1'dir. Sağ alt ağacındaki 9, 7, 11 düğümlerinin yüksekliği 2'dir. Aralarındaki fark 1'dir ve diğer tüm düğümlerin iki alt ağacının yüksekliği eşittir.
challenge icon

Ek soru

Ağacı açık bir yığın kullanarak özyineleme olmadan kontrol edebilir misin?

Kodu sıfırla
def isBalanced(root):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argüman

root = [5, 2, 9, -1, -1, 7, 11]

Beklenen Çıktı

true