#include<stdio.h>
#include<stdlib.h>
typedef struct node{
int data;
struct node *next;
}linklist;
linklist *createList(){
linklist *head,*p,*q;
int x;
scanf("%d",&x);
p=(linklist *)malloc(sizeof(linklist));
p->data=x;
head=p;
scanf("%d",&x);
while (x!=-1){
q=(linklist *)malloc(sizeof(linklist));
q->data=x;
p->next=q;
p=q;
scanf("%d",&x);
}
p->next=NULL;
return head;
}
linklist *deleteList(int n,linklist *head){
linklist *p,*q;
if (head==NULL) return NULL;
p=q=head;
if (p->data==n){
head=head->next;
free(p);p=q=head;
}
while (p!=NULL){
if (p->data!=n){
q=p;p=p->next;
}
else{
q->next=p->next;
free(p);
p=q->next;
}
}
return head;
}
void printList(linklist *head){
linklist *t;
t=head;
if (t==NULL)
printf("这是一个空列表\n");
while (t!=NULL){
printf("%d ",t->data);
t=t->next;
}
printf("\n");
}
int main()
{
linklist *head;
int n;
printf("请输入一组数,以-1结束\n");
head=createList();
printList(head);
printf("请输入要删除的数\n");
scanf("%d",&n);
head=deleteList(n,head);
printList(head);
system("pause");
return 0;
}