Menu
CoddyTech

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 بعد عقدتين.
challenge icon

سؤال إضافي

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

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

اختبار #1

اختبار #2

اختبار #3

وسيط

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

الإخراج المتوقع

4