社区讨论
大佬求调
B3631单向链表参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miv9gh54
- 此快照首次捕获于
- 2025/12/07 13:07 2 个月前
- 此快照最后确认于
- 2025/12/09 23:50 2 个月前
大佬求调!
帮我看看代码有什么毛病
问AI都没用
CPP帮我看看代码有什么毛病
问AI都没用
#include <bits/stdc++.h>
using namespace std;
struct node {
int data;
node *next;
node() : data(0), next(nullptr) {}
node(int val) : data(val), next(nullptr) {}
};
node *lastFound = nullptr;
node *getNode(node *head, int pos) {
if (pos == 0 || head == nullptr) {
return nullptr;
}
if (lastFound != nullptr && lastFound->data == pos) {
return lastFound;
}
node *curr = head;
while (curr != nullptr && curr->data != pos) {
curr = curr->next;
}
lastFound = curr;
return curr;
}
void insert(node *head, int pos, int data) {
node *newNode = new node(data);
node *curr = getNode(head, pos);
if (curr == nullptr) {
return;
}
newNode->next = curr->next;
curr->next = newNode;
}
void remove(node *head, int data) {
node *curr = getNode(head, data);
if (curr == nullptr || curr->next == nullptr) {
return;
}
node *temp = curr->next;
curr->next = temp->next;
delete temp;
temp = nullptr;
}
void print(node *head) {
node *curr = head;
while (curr != nullptr) {
cout << curr->data << " ";
curr = curr->next;
}
cout << "\n";
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
cin.rdbuf()->pubsetbuf(nullptr, 0);
cout.rdbuf()->pubsetbuf(nullptr, 0);
int n;
cin >> n;
node *head = new node(1);
lastFound = head;
//head->next = new node(2); head->next->next = new node(3);
while (n--) {
int id;
cin >> id;
if (id == 1) {
int x, y;
cin >> x >> y;
insert(head, x, y);
} else if (id == 2) {
int x;
cin >> x;
node *curr = getNode(head, x);
if (curr == nullptr || curr->next == nullptr) {
cout << "0\n";
continue;
}
cout << curr->next->data << "\n";
} else if (id == 3) {
int x;
cin >> x;
remove(head, x);
}
}
//print(head);
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...