#include <iostream>
#include <stdlib.h>
using namespace std;
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
void Del_X_1(LinkList &L,ElemType x){//删除带头结点链表的x
LNode *p=L->next,*pre=L,*q;//置p 和pre 初始值
while(p!=NULL){
if(p->data==x){
q=p;
p=p->next;
pre->next=p;
free(q);
}else{
pre=p;
p=p->next;
}
}
}
void Del_X_3(LinkList &L ,ElemType x){//删除不带头结点的单链表L中所有值为x的结点
LNode *p;
if(L==NULL) return;
if(L->data==x){
p=L;
L-L->next;
free(p);
Del_X_3(L,x);
}else{
Del_X_3(L->next,x);
}
}
LinkList tailInsert(LinkList &L){
int x ;
LinkList L;
LNode *s,*r=L;
cin>>x;
for(int i=2;i<20;i+=2){
s=(LNode *)malloc(sizeof(LNode));
s->data=i;
r->next=s;
r=s;
}
r->next=NULL; //尾结点指针置空
}
LinkList Create(LinkList &L){//头插法建带有头结点的单链表 =headInsert()
L=(LNode*)malloc(sizeof(LNode));//创建头结点
L->next=NULL;
LNode *s;
for(int i=0;i<10;i++){
s=(LNode*)malloc(sizeof(LNode));
s->data=i;
cout<<i;
s->next=L->next;
L->next=s;
}
}
int main(){
void Del_X_1(LinkList &L,ElemType x);
LinkList Create(LinkList &L);
LinkList L;
Create(L);
cout<<endl;
Del_X_1(L,2);
LNode *p=L->next;
while(p!=NULL){
cout<<p->data<<" ";
p=p->next;
}
return 0;
}