Menu
CoddyTech

Bottom View of Binary Tree

array root menyimpan pohon biner: root berada di indeks 0, anak-anak dari indeks i berada di 2i+1 (kiri) dan 2i+2 (kanan), -1 menandakan tempat kosong, dan mungkin ada entri -1 tambahan di akhir.

Root berada di kolom 0; langkah ke kiri berpindah satu kolom ke kiri, langkah ke kanan berpindah satu kolom ke kanan. Jika dilihat dari bawah, setiap kolom menampilkan node terdalamnya, dan jika kedalamannya sama, node terakhir pada tingkat tersebut saat dibaca dari kiri ke kanan (indeks yang lebih besar). Kembalikan nilai yang terlihat, mulai dari kolom paling kiri.

Fungsi

bottomView(root: integer-array) → integer-array
rootinteger-array
pohon dalam urutan heap, dengan -1 untuk posisi kosong
Mengembalikaninteger-array
nilai yang terlihat dari bawah di setiap kolom, dimulai dari kolom paling kiri

Batasan

  • 1 ≤ root.length ≤ 32767
  • Setiap root[i] adalah -1 atau nilai dengan 0 ≤ root[i] ≤ 104, dan tidak ada nilai yang muncul dua kali.
  • root[0] tidak pernah -1, jadi pohon memiliki setidaknya satu simpul.
  • Entri tambahan -1 mungkin berada di akhir array, setelah node terakhir.
  • Kedua anak dari titik kosong juga kosong, dan pohon memiliki paling banyak 14 level.

Contoh

Input
root = [5, 2, 9, 4, 7, 1, 6]
Output
[4, 2, 1, 9, 6]
Penjelasan
Kolom 0 berisi 5 dan, dua tingkat di bawahnya, 7 (indeks 4) dan 1 (indeks 5). 1 muncul belakangan pada tingkat yang sama, jadi angka itu terlihat. Kolom -2, -1, 1, dan 2 berisi 4, 2, 9, dan 6.
challenge icon

Pertanyaan lanjutan

Jika nilai seri pada level terdalam suatu kolom harus mengembalikan setiap node yang seri, dari kiri ke kanan, bagaimana versi breadth-first akan berubah? Apa hasil kolom 0 dari contoh 1?

Reset kode
def bottomView(root):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

[4, 2, 1, 9, 6]