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 נעצר אחרי 2 צמתים.

lock icon+13 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

איך היית מחזיר את הערכים שבנתיב הארוך ביותר מהשורש לעלה, ולא רק את אורכו? אם כמה נתיבים שווים באורכם, איזה מהם היית מחזיר, ואיך היית מציין זאת בחוזה?

איפוס הקוד
def maxDepth(tree):
    # כתבו כאן את הקוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

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

צפוי

4