Menu
CoddyTech

Binary Tree Level Order Traversal

tree dizisi bir ikili ağaç tutar. Kök, 0 dizininde bulunur; i dizinindeki düğümün çocukları 2*i+1 (sol) ve 2*i+2 (sağ) dizinlerinde bulunur; -1 boş bir yeri belirtir ve sonunda fazladan -1 girdileri bulunabilir.

Düğüm değerlerini seviyelere göre döndür: kökten en derin seviyeye kadar her seviye için bir liste; her listedeki değerler soldan sağa sıralı olsun.

Fonksiyon

levelOrder(tree: integer-array) → integer-2d-array
treeinteger-array
yığın sırasındaki ağaç; boş bir yer için -1
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 nedenle 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
3. indeks boştur, bu nedenle 9 yalnızca sağ çocuğa, 6'ya sahiptir. Üçüncü seviyede 6, 8, 5 bulunur ve 9. indeksteki, 6'nın altındaki 3 dördüncü seviyede tek başınadır.
challenge icon

Ek soru

Düzeyleri, hiçbir düzeyi sıralamadan, ilkini soldan sağa, ikincisini sağdan sola ve bu şekilde sırayla olacak şekilde zikzak düzeninde döndürebilir misin?

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

Test #1

Test #2

Test #3

Argüman

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

Beklenen Çıktı

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