Menu
CoddyTech

Binary Tree Level Order Traversal

array tree menyimpan pohon biner. Akar berada di indeks 0, anak dari simpul pada indeks i berada di 2*i+1 (kiri) dan 2*i+2 (kanan), -1 menandai posisi kosong, dan entri -1 tambahan mungkin berada di bagian akhir.

Kembalikan nilai simpul level demi level: satu list untuk setiap level, dari akar hingga level terdalam, masing-masing dengan nilainya dari kiri ke kanan.

Fungsi

levelOrder(tree: integer-array) → integer-2d-array
treeinteger-array
pohon dalam urutan heap, dengan -1 untuk posisi kosong
Mengembalikaninteger-2d-array
satu list nilai untuk setiap level, mulai dari level teratas, masing-masing dari kiri ke kanan

Batasan

  • 1 ≤ tree.length ≤ 32767
  • Setiap tree[i] bernilai -1 atau nilai dengan 0 ≤ tree[i] ≤ 1000.
  • tree[0] tidak pernah -1, jadi tree memiliki setidaknya satu node.
  • array tersebut mungkin diakhiri dengan entri -1 tambahan setelah simpul terakhir.
  • Kedua anak dari posisi kosong juga kosong, dan kedalamannya paling banyak 14.

Contoh

Input
tree = [4, 9, 2, -1, 6, 8, 5, -1, -1, 3]
Output
[[4], [9, 2], [6, 8, 5], [3]]
Penjelasan
Indeks 3 kosong, jadi 9 hanya memiliki anak kanan, yaitu 6. Level ketiga terdiri dari 6, 8, 5, dan 3 pada indeks 9, yang berada di bawah 6, sendirian di level keempat.
challenge icon

Pertanyaan lanjutan

Bisakah kamu mengembalikan level dalam urutan zigzag, level pertama dari kiri ke kanan, level kedua dari kanan ke kiri, dan seterusnya, tanpa mengurutkan level mana pun?

Reset kode
def levelOrder(tree):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

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