תרגול מדעי המחשב

ספירת עלים

בינוני Java

המשימה

עלה הוא צומת שאין לו בן שמאלי ואין לו בן ימני.

כתוב פעולה **רקורסיבית** שמקבלת שורש של עץ בינארי ומחזירה כמה עלים יש בו.

דוגמה עבור העץ שבקוד — יש בו 2 עלים.

הנחיות:
• שני מקרי בסיס: עץ ריק (0), וצומת שהוא עלה (1).
• השתמש ב-hasLeft ו-hasRight.

ממשק מבני הנתונים כבר מצורף למשימה.

```ds:tree
{"title":"העלים הם 1 ו-7. הצומת 2 אינו עלה — יש לו בן שמאלי","nodes":["4","2","7","1"]}
```

קוד הפתיחה

public class Main {

    public static int countLeaves(BinNode<Integer> root) {
        // כתוב את הפתרון כאן — רקורסיבי
        return 0;
    }

    public static void main(String[] args) {
        //        4
        //       / \
        //      2   7      עלים: 1 ו-7
        //     /
        //    1
        BinNode<Integer> one  = new BinNode<Integer>(1);
        BinNode<Integer> two  = new BinNode<Integer>(one, 2, null);
        BinNode<Integer> sev  = new BinNode<Integer>(7);
        BinNode<Integer> root = new BinNode<Integer>(two, 4, sev);

        System.out.println(countLeaves(root));   // 2
        System.out.println(countLeaves(sev));    // 1
        System.out.println(countLeaves(null));   // 0
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

התרגיל הבא ספירת צמתים בעץ
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון — כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות בדיקה חיצוני.