#include<stdio.h>
#include<malloc.h>
typedef struct node
{
int data;
struct node*next;
}Node;
int creat(Node*L,int a[],int n)
{
int i;
Node*p,*q;
for(i=0;i<n;i++)
{
q=(Node*)malloc(sizeof(Node));
q->data=a[i];
q->next=L->next;
L->next=q;
}
}
int display(Node*L)
{
Node*p;
p=L->next;
printf("链表的数据为:\n");
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
int dele(Node*L,int x)
{
Node*p,*q;
p=L;
while(p->next!=NULL)
{
if(p->next->data==x)
{
q=p->next;
p->next=q->next;
free(q);
}
else
{
p->next;
}
}
}
int main()
{
int x,n=10,a[]={12,3,56,4,8,15,34,90,89,3};
Node*L;
L=(Node*)malloc(sizeof(Node));
L->next=NULL;
creat(L,a,n);
display(L);
printf("请输入要删除的数据:\n");
scanf("%d",&x);
dele(L,x);
display(L);
}