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

Maximum Depth of Binary Tree

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

الدالة

maxDepth(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 = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]
المخرجات
4
الشرح
أطول مسار هو 5، 8، 3، 6 (الفهارس 0، 1، 4، 9)، ويتكوّن من 4 عُقد. أما المسار الذي يمر عبر 1 فيتوقف بعد عُقدتين.

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

challenge icon

سؤال إضافي

كيف ستُعيد القيم الموجودة في أطول مسار من الجذر إلى الورقة، بدلًا من إرجاع طوله فقط؟ إذا تعادل طول عدة مسارات، فأيّها ستُعيد، وكيف ستوضّح ذلك في العقد؟

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

الحالة 1

الحالة 2

الحالة 3

المدخلات

tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]

المتوقع

4