Menu
CoddyTech

Bottom View of Binary Tree

root dizisi bir ikili ağaç tutar: kök 0 indeksinde, i indeksinin çocukları 2i+1 (sol) ve 2i+2 (sağ) indekslerinde, boş bir yer için -1 kullanılır ve sonda fazladan -1 değerleri bulunabilir.

Kök 0 sütunundadır; sola doğru bir adım bir sütun sola, sağa doğru bir adım bir sütun sağa ilerletir. Aşağıdan bakıldığında her sütun en derindeki düğümü gösterir; aynı derinlikte birden fazla düğüm varsa, soldan sağa okunduğunda o seviyedeki son düğüm (daha büyük indeksli olan) seçilir. Gördüğünüz değerleri, en soldaki sütundan başlayarak döndürün.

Fonksiyon

bottomView(root: integer-array) → integer-array
rootinteger-array
yığın sırasındaki ağaç, boş bir konum için -1
Döndürürinteger-array
her sütunda aşağıdan görülen değer, en soldaki sütundan başlayarak

Kısıtlar

  • 1 ≤ root.length ≤ 32767
  • Her root[i], -1 ya da 0 ≤ root[i] ≤ 104 koşulunu sağlayan bir değerdir ve hiçbir değer iki kez görünmez.
  • root[0] hiçbir zaman -1 değildir, dolayısıyla ağaçta 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 ağacın en fazla 14 seviyesi vardır.

Örnekler

Girdi
root = [5, 2, 9, 4, 7, 1, 6]
Çıktı
[4, 2, 1, 9, 6]
Açıklama
0. sütunda 5 bulunur ve iki seviye aşağıda 7 (indeks 4) ile 1 (indeks 5) bulunur. 1 aynı seviyede daha sonra geldiği için görünür. -2, -1, 1 ve 2. sütunlarda 4, 2, 9 ve 6 bulunur.
challenge icon

Ek soru

Bir sütunun en derin düzeyinde eşitlik varsa soldan sağa tüm eşit düğümler döndürülmeli. Genişlik öncelikli sürüm nasıl değişirdi? 1. örnekte 0. sütun ne verirdi?

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

Test #1

Test #2

Test #3

Argüman

root = [5, 2, 9, 4, 7, 1, 6]

Beklenen Çıktı

[4, 2, 1, 9, 6]