社区讨论

30分求救124AC,其他RE

B3631单向链表参与者 2已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mdfwivek
此快照首次捕获于
2025/07/23 19:50
8 个月前
此快照最后确认于
2025/11/04 03:51
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
#define int long long
#define N 5000005
#define M 10001
#define gcd __gcd
using namespace std;
void _Insert(int val, int n);
void _Print();
void _Delete(int n); 
struct node {
	int val;
	struct node* nct;
}; 
struct node* head;
int q, x, y;
void _Insert(int val, int n){
	struct node* t = new node();
	t->val = val;
	t->nct = NULL;
//	if(n == 1){
//		t->nct = head;
//		head = t;
//		return;
//	}
	struct node* num = head;
	for(int i = 0; i < n - 2; i++)
		num = num->nct;
	t->nct = num->nct;
	num->nct = t;
}
void _Print(){
	node* t = head;
	while(t != NULL){
		cout << t->val << ' ';
		t = t->nct;
	}
}
void _Delete(int n){
	struct node* t = head;
	for(int i = 0; i < n - 2; i++) t = t->nct;
	struct node* num = t->nct;
	t->nct = num->nct;
	free(num);
}
signed main(){
	head = new node();
	head->val = 1;
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> q;
	int len = 1;
	while(q--){
		int p;
		cin >> p;
		bool f = 1;
		switch(p){
			case 1:{
				cin >> x >> y;
				node* sum = head;
				for(int i = 0; i < len && sum != NULL; i++, sum = sum->nct)
					if(sum->val == x)
					{
						_Insert(y, i + 2);
						len++;
//						_Print();
//						cout << '\n';
						break;
					}
				break;
			}
			case 2:{
				cin >> x;
				node* sum = head;
				for(int i = 0; i < len && sum != NULL; i++, sum = sum->nct)
					if(sum->val == x){
						sum = sum->nct;
						cout << sum->val << '\n';
//						_Print();
						f = 0;
						break;
					}
				if(f) cout << 0 << '\n';
				break;
			}
			case 3:{
				cin >> x;
				node* sum = head;
				for(int i = 0; i < len && sum != NULL; i++, sum = sum->nct)
					if(sum->val == x)
					{
						_Delete(i + 2);
						len--;
						break;
					}
				break;
			}
		}
	}
	return 0;
}

30分求救
1、2、4AC
其余全部RE
求救qwq!!!

回复

5 条回复,欢迎继续交流。

正在加载回复...