Menu
CoddyTech

Left View of Binary Tree

Yığın sırasındaki root dizisi olarak bir ikili ağaç veriliyor: kök 0 indeksindedir, i indeksindeki düğümün çocukları 2*i+1 (sol) ve 2*i+2 (sağ) indekslerindedir ve boş konumları -1 belirtir. Dizinin sonunda fazladan -1 girdileri bulunabilir.

Ağacın solunda durun. Her seviyede bir düğüm görürsünüz: en soldakini; seviyenin geri kalanı onun arkasında gizlenir. Gördüğünüz değerleri üst seviyeden aşağıya doğru döndürün.

Fonksiyon

leftView(root: integer-array) → integer-array
rootinteger-array
heap düzenindeki ağaç; boş bir konum için -1
Döndürürinteger-array
Her seviyenin en soldaki değeri; önce en üst seviye

Kısıtlar

  • 1 ≤ root.length ≤ 32767
  • Her root[i], -1 ya da 0 ≤ root[i] ≤ 104 aralığında bir değerdir.
  • Düğüm değerleri birbirinden farklıdır.
  • root[0] hiçbir zaman -1 değildir, bu yüzden ağaçta en az bir düğüm vardır.
  • Dizi, son düğümden sonra fazladan -1 girdileriyle bitebilir.
  • Boş bir konumun her iki çocuğu da boştur ve ağacın en fazla 14 seviyesi vardır.

Örnekler

Girdi
root = [3, 8, 5, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, 1]
Çıktı
[3, 8, 6, 1]
Açıklama
8 bir yaprak olduğundan, üçüncü ve dördüncü seviyelerde yalnızca 6 (indeks 6) ve 1 (indeks 13) bulunur; ikisi de sağ çocuk 5'in altındadır. Yine de onları görürsün: [3, 8, 6, 1].
challenge icon

Ek soru

Seviye d, 2^d-1 ile 2^(d+1)-2 arasındaki dizinleri doldurur. Kuyruk veya özyineleme kullanmadan bu aralıkları tarayarak görünümü oluşturabilir misin? Bu, doldurulmuş bir dizide ne kadara mal olur?

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

Test #1

Test #2

Test #3

Argüman

root = [3, 8, 5, -1, -1, -1, 6, -1, -1, -1, -1, -1, -1, 1]

Beklenen Çıktı

[3, 8, 6, 1]