İçeriğe atla
CodeItRaw
Ağaçlar

Ders 3/3

Bazı sorularda bir düğüm yalnızca çocuklarına bakarak karar veremez; yukarıdan gelen bilgiye ihtiyacı vardır. Kökten yaprağa giden bir yolun toplamı hedefe eşit mi? Her düğüme "buraya kadar ne kaldı" bilgisini parametre olarak verirsin; yaprağa vardığında kalan tam olarak yaprağın değeriyse yol bulunmuştur.

def has_path(node, left):
if node is None:
return False
if node.left is None and node.right is None:
return left == node.val
rest = left - node.val
return has_path(node.left, rest) or has_path(node.right, rest)
Yol yaprakta bitmek zorunda olduğu için karar yaprakta verilir, boş düğümde değil. or ilk bulduğu yolda durur; sol taraf True dönerse sağa hiç bakılmaz.

Arama ağacı kontrolü aynı fikirle çalışır: her düğüme, değerinin içinde kalması gereken aralığı verirsin. Sola inerken üst sınır düğümün değeri olur, sağa inerken alt sınır. Böylece bir düğüm yalnızca babasıyla değil, yukarıdaki bütün atalarıyla karşılaştırılmış olur.

Görevler

Görevler sırayla açılır. Hepsini çözünce sonraki ders açılır.

Bu dersin görevleri, önceki dersler bitince açılır. Anlatımı şimdiden okuyabilirsin.

  1. 01

    Düğüm Sayısı

    Kod Okuma · AI'yı Denetle

  2. 02

    Yol Toplamı

    Fonksiyon

  3. 03

    Arama Ağacı mı?

    Fonksiyon

Sırayı beklemeden çözmek istersen bütün problemler kilitsiz açık: Problemler listesi