C++
#include <cstddef> #include <cstdlib> #include <iostream> using namespace std; using list = struct list { int data; list *next; }; list *initList() { list *L = new list; L->next = nullptr; // 空头结点 return L; } list* insertList(list *L, int x, int y) { list *p = new list; list *q = L; while (q->next != nullptr && q->next->data != x) { q = q->next; } p->data = y; p->next = q->next; q->next = p; return L; } list* deleteList(list *L, int x) { list *q = L; while (q->next != nullptr) { if (q->next->data == x) { list *p = q->next; q->next = p->next; delete p; return L; } q = q->next; } return L; } bool isEmptyList(list *L) { return L->next == nullptr; } void printList(list *L) { list *q = L->next; while (q != nullptr) { cout << q->data << ' '; q = q->next; } } int main() { int n; cin >> n; string op; int x, y; list *L = initList(); while (n--) { cin >> op; if (op=="insert") { cin >> x >> y; insertList(L, x, y); } else if (op=="delete") { cin >> x; deleteList(L, x); } } if (isEmptyList(L)) cout << "NULL"; else printList(L); } // 64 位输出请用 printf("%lld")