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]