Menu
CoddyTech

Diameter of Binary Tree

נתון לך עץ בינארי שמאוחסן במערך tree לפי סדר רמות. השורש נמצא באינדקס 0, הילדים של הצומת באינדקס i נמצאים באינדקסים 2*i+1 (שמאל) ו־2*i+2 (ימין), -1 מציין מקום ריק, והמערך עשוי להסתיים בערכי -1 נוספים. החזר את הקוטר של העץ: מספר הקשתות במסלול הארוך ביותר בין שני צמתים כלשהם. המסלול עשוי לעבור דרך השורש או להישאר בתוך תת־עץ אחד.

פונקציה

diameterOfBinaryTree(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 = [8, 3, 6, 1, 4, -1, -1, -1, -1, 7]
פלט
4
הסבר
המסלול 7, 4, 3, 8, 6 (אינדקסים 9, 4, 1, 0, 2) מכיל חמישה צמתים המחוברים באמצעות ארבע קשתות. הוא פונה בשורש: שלוש קשתות יורדות בצד שמאל ואחת יורדת בצד ימין.

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

challenge icon

שאלת המשך

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

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

מקרה 1

מקרה 2

מקרה 3

קלט

tree = [8, 3, 6, 1, 4, -1, -1, -1, -1, 7]

צפוי

4