#include<stdio.h>
#include<malloc.h>
typedef struct A{
int t;
struct A *next;
}Link;
void init(Link *&l){
l=(Link*)malloc(sizeof(Link));
l->next=NULL;
}
void print(Link *l){
Link *p=l->next;
while(p!=NULL){
printf("%d ",p->t);
p=p->next;
}
printf("\n");
}
void Insert(Link *&l,int a[],int n){
Link *p=l,*s;
int i;
for(i=0;i<n;i++){
s=(Link*)malloc(sizeof(Link));
s->t=a[i];
p->next=s;
p=s;
}
p->next=NULL;
}
void Delete(Link *&L,int y){
Link *p=L,*q=p->next,*s;
while(q!=NULL){
if(q->t==y){
if(q->next!=NULL){
p->next=q->next;
free(q);
}
else{
p->next=NULL;
free(q);
}
}
if(p->next!=NULL&&p->next->t!=y){
p=p->next;
}
if(p->next!=NULL)
q=p->next;
else{
p->next=NULL;
break;
}
}
}
int main(){
Link *L;
int n,a[200000],i,y;
init(L);
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
Insert(L,a,n);
scanf("%d",&y);
Delete(L,y);
print(L);
return 0;
}
链表---删除一个指定的数字
最新推荐文章于 2022-05-12 12:44:52 发布