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

Symmetric Tree

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

الدالة

isSymmetric(tree: integer-array) → boolean
treeinteger-array
الشجرة الثنائية بترتيب المستويات، مع استخدام ‎-1‎ للدلالة على موضع فارغ
تُرجعboolean
صحيح إذا كانت الشجرة متناظرة حول نفسها، وخطأ خلاف ذلك

القيود

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

أمثلة

المدخلات
tree = [1, 2, 2, 3, 4, 4, 3]
المخرجات
true
الشرح
اطوِ الشجرة من المنتصف. يلتقي الرقمان 2 عند الفهرسين 1 و2، ويلتقي الرقمان الخارجيان 3 عند الفهرسين 3 و6، ويلتقي الرقمان الداخليان 4 عند الفهرسين 4 و5.

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

challenge icon

سؤال إضافي

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

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

الحالة 1

الحالة 2

الحالة 3

المدخلات

tree = [1, 2, 2, 3, 4, 4, 3]

المتوقع

true