Menu
CoddyTech

Diameter of Binary Tree

Kamu mendapatkan pohon biner yang disimpan dalam array tree dengan urutan level. Akar berada di indeks 0, anak dari simpul di indeks i berada di 2*i+1 (kiri) dan 2*i+2 (kanan), -1 menandai tempat kosong, dan array dapat diakhiri dengan entri -1 tambahan. Kembalikan diameter pohon: jumlah sisi pada jalur terpanjang antara dua simpul mana pun. Jalur tersebut dapat melewati akar atau tetap berada di dalam satu subtree.

Fungsi

diameterOfBinaryTree(tree: integer-array) → integer
treeinteger-array
pohon biner dalam urutan level, dengan -1 untuk posisi kosong
Mengembalikaninteger
jumlah sisi pada jalur terpanjang antara dua node

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 dapat diakhiri dengan entri -1 tambahan setelah node terakhir.
  • Kedua child dari posisi kosong juga kosong, dan kedalamannya paling banyak 14.

Contoh

Input
tree = [8, 3, 6, 1, 4, -1, -1, -1, -1, 7]
Output
4
Penjelasan
Jalur 7, 4, 3, 8, 6 memiliki lima simpul dan empat sisi. Jalur ini berbelok di akar: tiga sisi ke bawah di kiri, satu ke bawah di kanan.
challenge icon

Pertanyaan lanjutan

Bagaimana cara mengembalikan jalurnya sendiri, yaitu nilai node dari satu ujung diameter ke ujung lainnya?

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

Tes #1

Tes #2

Tes #3

Argumen

tree = [8, 3, 6, 1, 4, -1, -1, -1, -1, 7]

Output yang diharapkan

4