המשימה
כתוב פעולה שמקבלת מצביע לחוליה הראשונה בשרשרת וערך שלם 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"]}
```
קוד הפתיחה
using System;
class Program {
/** מסירה את המופע הראשון של x ומחזירה את הראש החדש. */
static Node<int> RemoveFirst(Node<int> head, int x) {
// כתוב את הפתרון כאן
return head;
}
// ── עזר, לא חלק מהמשימה ──────────────────────────────────────────
static Node<int> Build(int[] v) {
Node<int> h = null;
for (int i = v.Length - 1; i >= 0; i--) h = new Node<int>(v[i], h);
return h;
}
static void Print(Node<int> head) {
Node<int> p = head;
while (p != null) { Console.Write(p.GetInfo() + " -> "); p = p.GetNext(); }
Console.WriteLine("null");
}
static void Main() {
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 ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.