Menu
CoddyTech

Binary Tree Level Order Traversal

tree dizisinde saklanan bir ikili ağaç veriliyor. Kök 0 indeksinde bulunur; i indeksindeki düğümün çocukları 2*i+1 (sol) ve 2*i+2 (sağ) indekslerinde bulunur; -1 boş bir yeri belirtir ve dizinin sonunda fazladan -1 değerleri olabilir.

Düğüm değerlerini seviyelere göre döndürün: kökün değerini içeren bir liste, ardından bir alt seviyedeki değerleri soldan sağa içeren bir liste ve en derin seviyeye kadar bu şekilde devam edin.

Fonksiyon

levelOrder(tree: integer-array) → integer-2d-array
treeinteger-array
yığın düzenindeki ağaç; boş bir yer için -1 kullanılır
Döndürürinteger-2d-array
her düzey için bir değer listesi; önce en üst düzey, her biri soldan sağa

Kısıtlar

  • 1 ≤ tree.length ≤ 32767
  • Her tree[i], -1 ya da 0 ≤ tree[i] ≤ 1000 aralığında bir değerdir.
  • tree[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 noktanın her iki çocuğu da boştur ve derinlik en fazla 14 olur.

Örnekler

Girdi
tree = [4, 9, 2, -1, 6, 8, 5, -1, -1, 3]
Çıktı
[[4], [9, 2], [6, 8, 5], [3]]
Açıklama
Kök 4, 1 ve 2 indekslerinde 9 ve 2 çocuklarına sahiptir. 3. indeks boştur, bu nedenle üçüncü seviyede önce 6 (4. indeks, 9'un altında), ardından 8 ve 5 (5. ve 6. indeksler, 2'nin altında) bulunur. 9. indeksteki 3, dördüncü seviyede tek başına duran 6'nın sol çocuğudur.

lock iconGönderirken +15 gizli test

challenge icon

Ek soru

Seviyeleri, herhangi bir seviyeyi sıralamadan; ilkini soldan sağa, ikincisini sağdan sola ve bu şekilde dönüşümlü olarak döndürebilir misin?

Kodu sıfırla
def levelOrder(tree):
    # Kodu buraya yazın
Test durumları

Durum 1

Durum 2

Durum 3

Girdi

tree = [4, 9, 2, -1, 6, 8, 5, -1, -1, 3]

Beklenen

[[4], [9, 2], [6, 8, 5], [3]]