#include<cstdio>
using namespace std;
struct Node{
int data;
Node *next=NULL;
};
void insert(Node *head,int x,int y){
Node *p=head->next,*r;
while(p->data!=x){
p = p->next;
}
if(p->next==NULL){
p->next = new Node;
}
r = new Node;
r->next = p->next;
r->data = y;
p->next = r;
}
void found(Node *head,int x){
Node *p=head->next;
while(p!=NULL&&p->data!=x){
p = p->next;
}
if(p==NULL){
printf("0\n");
}
else{
printf("%d\n",p->next->data);
}
}
void delet(Node *head,int x){
Node *p=head->next;
while(p!=NULL&&p->data!=x){
p = p->next;
}
p->next = p->next->next;
}
int main(){
Node *head;
head = new Node;
head->next = new Node;
head->next->data = 1;
int n,x,y,z;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d",&z,&x);
switch(z){
case 1:scanf("%d",&y);insert(head,x,y);break;
case 2:found(head,x);break;
case 3:delet(head,x);break;
}
}
return 0;
}
我的代码,前八个AC后两个TLE。求助!!!