Menu
CoddyTech
flag Ar iconالعربيةdown icon

Diameter of Binary Tree

لديك شجرة ثنائية مخزّنة في المصفوفة tree بترتيب المستويات. يقع الجذر عند الفهرس 0، ويقع ابنا العقدة عند الفهرس i عند 2*i+1 (الأيسر) و2*i+2 (الأيمن)، ويشير -1 إلى موضع فارغ، وقد تنتهي المصفوفة بعناصر -1 إضافية. أعد قطر الشجرة: عدد الحواف في أطول مسار بين أي عقدتين. قد يمر المسار عبر الجذر أو يبقى داخل شجرة فرعية واحدة.

الدالة

diameterOfBinaryTree(tree: integer-array) → integer
treeinteger-array
الشجرة الثنائية بترتيب المستويات، مع استخدام ‎-1‎ للدلالة على موضع فارغ
تُرجعinteger
عدد الحواف في أطول مسار بين عقدتين

القيود

  • 1 ≤ tree.length ≤ 32767
  • كل عنصر tree[i] إما -1 أو قيمة تحقق 0 ≤ tree[i] ≤ 1000.
  • لا تكون tree[0] أبدًا -1، لذا تحتوي الشجرة على عقدة واحدة على الأقل.
  • قد تنتهي المصفوفة بعناصر -1 إضافية بعد آخر عقدة.
  • كلا الفرعين من الموضع الفارغ فارغان أيضًا، والعمق لا يزيد عن 14.

أمثلة

المدخلات
tree = [8, 3, 6, 1, 4, -1, -1, -1, -1, 7]
المخرجات
4
الشرح
يحتوي المسار 7، 4، 3، 8، 6 (الفهارس 9، 4، 1، 0، 2) على خمس عقد متصلة بأربع حواف. وينعطف عند الجذر: ثلاث حواف نزولًا على الجانب الأيسر وواحدة نزولًا على الجانب الأيمن.

lock icon+12 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

كيف يمكنك إرجاع المسار نفسه، وقيم العُقد من أحد طرفَي القطر إلى الطرف الآخر؟

إعادة ضبط الشيفرة
def diameterOfBinaryTree(tree):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

الحالة 3

المدخلات

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

المتوقع

4