Menu
CoddyTech

Diameter of Binary Tree

Seviye sırasına göre tree dizisinde saklanan bir ikili ağaç verilir. Kök 0 indeksinde bulunur, i indeksindeki düğümün çocukları 2*i+1 (sol) ve 2*i+2 (sağ) indekslerinde bulunur, boş bir yeri -1 belirtir ve dizinin sonunda fazladan -1 girdileri olabilir. Ağacın çapını döndür: Herhangi iki düğüm arasındaki en uzun yol üzerindeki kenar sayısını. Yol kökten geçebilir veya tek bir alt ağacın içinde kalabilir.

Fonksiyon

diameterOfBinaryTree(tree: integer-array) → integer
treeinteger-array
ikili ağacı seviye sırasına göre, boş konumlar için -1
Döndürürinteger
iki düğüm arasındaki en uzun yol üzerindeki kenar sayısı

Kısıtlar

  • 1 ≤ tree.length ≤ 32767
  • Her bir tree[i], -1 ya da 0 ≤ tree[i] ≤ 1000 aralığında bir değerdir.
  • tree[0] hiçbir zaman -1 olmaz, dolayısıyla ağaçta en az bir düğüm vardır.
  • Dizi, son düğümden sonra fazladan -1 girdileriyle bitebilir.
  • Boş bir yerin her iki çocuğu da boştur ve derinlik en fazla 14 olur.

Örnekler

Girdi
tree = [8, 3, 6, 1, 4, -1, -1, -1, -1, 7]
Çıktı
4
Açıklama
7, 4, 3, 8, 6 yolu (indeksler 9, 4, 1, 0, 2), dört kenarla birbirine bağlanan beş düğüm içerir. Kök düğümde yön değiştirir: sol taraftan aşağı üç kenar ve sağ taraftan aşağı bir kenar.
challenge icon

Ek soru

Yolun kendisini, çapın bir ucundan diğer ucuna kadar düğüm değerlerini nasıl döndürürdünüz?

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

Test #1

Test #2

Test #3

Argüman

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

Beklenen Çıktı

4