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.

lock iconGönderirken +12 gizli test

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 durumları

Durum 1

Durum 2

Durum 3

Girdi

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

Beklenen

4