המשימה
כתוב פעולה שמקבלת מצביע לחוליה הראשונה בשרשרת וערך שלם 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 כבר מצורפת למשימה. [רשימה מקושרת] [רשימה מקושרת]
קוד הפתיחה
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 ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.