وظيفة للبحث عن أطول مسار في شجرة ثنائية

Python Hard functions

مهمة «وظيفة للبحث عن أطول مسار في شجرة ثنائية»

```html
<pre><code>بالنظر إلى شجرة ثنائية، كل عقدة منها تحتوي على عدد صحيح. يجب إيجاد أقصى مجموع للقيم على مسار من الجذر إلى الورقة. يجب أن يبدأ المسار من الجذر وينتهي في الورقة. اكتب دالة max_path_sum(root) التي تستقبل جذر الشجرة وتعيد أقصى مجموع. يتم تمثيل الشجرة على شكل قائمة، حيث تعني -1 عدم وجود عقدة. القيود: عدد العقد لا يتجاوز 1000، وقيم العقد من -1000 إلى 1000.</code></pre>
```

تنسيق الإدخال

في السطر الأول عدد صحيح n — عدد العقد. في السطر الثاني n من الأعداد الصحيحة مفصولة بمسافات — قيم العقد بترتيب المسح بالعرض (مستوى تلو الآخر)، حيث -1 يعني عقدة فارغة.

تنسيق الإخراج

عدد صحيح واحد — أقصى مجموع على المسار من الجذر إلى الورقة.

أمثلة

مثال 1

الإدخال
5 -1 2 3 -1 -1
الإخراج
2
main.py