Menu
CoddyTech

Binary Tree Right Side View

تحتوي المصفوفة root على شجرة ثنائية. يقع الجذر عند الفهرس 0، وتقع عُقد الأبناء للعقدة عند الفهرس i عند 2*i+1 (اليسرى) و2*i+2 (اليمنى)، وتشير -1 إلى موضع فارغ، وقد توجد قيَم إضافية -1 في النهاية.

انظر إلى الشجرة من جانبها الأيمن. يُظهر لك كل مستوى عقدة واحدة بالضبط، وهي العقدة الأبعد إلى اليمين، ويحجب ما تبقى. اذكر تلك القيم بدءًا من مستوى الجذر نزولًا إلى أعمق مستوى.

الدالة

rightSideView(root: integer-array) → integer-array
rootinteger-array
الشجرة بترتيب الكومة، مع -1 للدلالة على خانة فارغة
تُرجعinteger-array
القيمة الموجودة في أقصى اليمين لكل مستوى، بدءًا بالمستوى الأعلى

القيود

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

أمثلة

المدخلات
root = [5, 2, 9, 7, 4, -1, 1, -1, 3]
المخرجات
[5, 9, 1, 3]
الشرح
من اليمين ترى 5 و9 و1 (الفهرس 6). يحتوي المستوى الرابع على 3 فقط، عند الفهرس 8 تحت 7 في الشجرة الفرعية اليسرى. لا يصل أي شيء على اليمين إلى هذا العمق، لذا يكون 3 مرئيًا.
challenge icon

سؤال إضافي

كيف يمكنك الحصول على المنظر الجانبي الأيمن لشجرة يمكن أن يكون لكل عقدة فيها أي عدد من الأبناء، مخزّنين في قائمة من اليسار إلى اليمين؟

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

اختبار #1

اختبار #2

اختبار #3

وسيط

root = [5, 2, 9, 7, 4, -1, 1, -1, 3]

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

[5, 9, 1, 3]