Menu
CoddyTech

Top View of Binary Tree

Yığın sıralamasında root dizisinde saklanan bir ikili ağaç alırsınız: kök 0 indeksinde, i indeksindeki düğümün çocukları 2*i+1 (sol) ve 2*i+2 (sağ) indekslerinde, boş bir konum içinse -1 bulunur.

Kök 0 sütunundadır; sol çocuk, ebeveyninin bir sütun solunda; sağ çocuk ise bir sütun sağında yer alır. Yukarıdan bakıldığında her sütundaki en sığ düğümü görürsünüz; eşitlik durumunda, seviyesinde soldan sağa ilk geleni (daha küçük indeksteki) görürsünüz. Gördüğünüz değerleri en soldaki sütundan en sağdakine doğru döndürün.

Fonksiyon

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

Kısıtlar

  • 1 ≤ root.length ≤ 32767
  • Her root[i] değeri -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 iki çocuğu da boştur ve ağaç en fazla 14 seviyeye sahiptir.

Örnekler

Girdi
root = [5, 2, 9, 4, 7, 1, 6]
Çıktı
[4, 2, 5, 9, 6]
Açıklama
Soldan sağa sütunlarda 4 (sütun -2), 2 (-1), kök 5 (0), 9 (1) ve 6 (2) bulunur. 7 ve 1 de 0. sütundadır, ancak kök onların üzerindedir.
challenge icon

Ek soru

Dizi yerine düğüm nesneleri kullanıldığında, eşitliği bozmak için kullanılacak bir indeks yoktur. Eşitlik kuralını nasıl ifade edersin ve genişlik öncelikli arama kodun değişir mi?

Kodu sıfırla
def topView(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, 5, 9, 6]