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 צמתים.
challenge icon

שאלת המשך

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

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

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

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

הפלט הצפוי

4