牛客:【模版】链表
笔记:如果结构体初始化不用传值就用new 结构体类型
,如new LinkNode
。如果有一个LinkNode类型的指针temp,要释放空间,就用delete temp
。
#include <bits/stdc++.h>
using namespace std;
struct LinkNode {
int value;
LinkNode *next;
LinkNode() {
}
LinkNode(int val, LinkNode *ln): value(val), next(ln) {
}
};
int q;
LinkNode *head = new LinkNode(0, NULL);
LinkNode *query(int x) {
LinkNode *t = head;
while (t->next != NULL) {
if (t->next->value == x) {
return t;
}
t = t->next;
}
return t;
}
int main() {
cin >> q;
while (q--) {
string op;
int x, y;
cin >> op;
if (op == "insert") {
cin >> x >> y;
LinkNode *t, *nn = new LinkNode(y, NULL), *nt = new LinkNode;
t = query(x);
if (t->next) {
nn->next = t->next;
t->next = nn;
} else
t->next = nn;
} else {
cin >> x;
LinkNode *t = query(x), *temp;
if (t->next) {
temp = t->next;
t->next = t->next->next;
delete temp;
}
}
}
LinkNode *t = head->next;
if (t == NULL)
cout << "NULL";
while (t) {
cout << t->value << " ";
t = t->next;
}
return 0;
}