המשימה
כתוב פעולה **רקורסיבית** שמקבלת שורש של עץ בינארי של מספרים שלמים
ומחזירה את סכום כל הערכים שבו.
הנחיות:
• מקרה הבסיס: עץ ריק (null) — הסכום 0.
• צעד הרקורסיה: הערך של הצומת הנוכחי, ועוד סכום תת-העץ השמאלי,
ועוד סכום תת-העץ הימני.
• זה בדיוק אותו שלד של ספירת הצמתים. ההבדל היחיד: במקום להוסיף 1
לכל צומת, מוסיפים את הערך שבו.
ממשק מבני הנתונים כבר מצורף למשימה.
```ds:tree
{"title":"העץ שבדוגמה — הסכום 26","nodes":["4","2","7","1","3",null,"9"]}
```
קוד הפתיחה
public class Main {
public static int sumTree(BinNode<Integer> root) {
// כתוב את הפתרון כאן — רקורסיבי
return 0;
}
public static void main(String[] args) {
// 4
// / \
// 2 7
// / \ \
// 1 3 9
BinNode<Integer> one = new BinNode<Integer>(1);
BinNode<Integer> three = new BinNode<Integer>(3);
BinNode<Integer> nine = new BinNode<Integer>(9);
BinNode<Integer> two = new BinNode<Integer>(one, 2, three);
BinNode<Integer> seven = new BinNode<Integer>(null, 7, nine);
BinNode<Integer> root = new BinNode<Integer>(two, 4, seven);
BinNode.printTree(root);
System.out.println(sumTree(root)); // 26
System.out.println(sumTree(null)); // 0
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.