המשימה
כתוב פעולה שמקבלת מצביע לחוליה הראשונה בשרשרת וערך שלם x,
מסירה את **החוליה הראשונה בלבד** שערכה x (אם קיימת),
ומחזירה מצביע לראש השרשרת החדשה.
דוגמאות עבור x=5:
1 → 5 → 2 → 5 → null → 1 → 2 → 5 → null
5 → 1 → null → 1 → null
1 → 2 → null → 1 → 2 → null (אין מה להסיר)
הנחיות:
• **הפעולה מחזירה Node.** אם המופע הראשון הוא בראש השרשרת, הראש משתנה.
• רק מופע אחד מוסר. אחרי שהסרתם — צאו.
המחלקה Node כבר מצורפת למשימה.
```ds:list
{"title":"לפני — removeFirst(head, 5)","items":["1","5","2","5"]}
```
```ds:list
{"title":"אחרי — רק המופע הראשון הוסר","items":["1","2","5"]}
```
קוד הפתיחה
public class Main {
/** מסירה את המופע הראשון של x ומחזירה את הראש החדש. */
public static Node<Integer> removeFirst(Node<Integer> head, int x) {
// כתוב את הפתרון כאן
return head;
}
// ── עזר, לא חלק מהמשימה ──────────────────────────────────────────
public static Node<Integer> build(int[] v) {
Node<Integer> h = null;
for (int i = v.length - 1; i >= 0; i--) h = new Node<Integer>(v[i], h);
return h;
}
public static void print(Node<Integer> head) {
Node<Integer> p = head;
while (p != null) { System.out.print(p.getInfo() + " -> "); p = p.getNext(); }
System.out.println("null");
}
public static void main(String[] args) {
print(removeFirst(build(new int[]{1, 5, 2, 5}), 5)); // 1 -> 2 -> 5 -> null
print(removeFirst(build(new int[]{5, 1}), 5)); // 1 -> null
print(removeFirst(build(new int[]{1, 2}), 5)); // 1 -> 2 -> null
print(removeFirst(null, 5)); // null
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.