//非递归
bool delete(LNode *L,int x){
LNode *p=L;
while(p!=null && p->next->data==x) //遍历链表,找到第一个值为x的节点
p=p->next;
if(p == null) //如果没有找到 ,就退出循环
return false; //删除失败
LNode *s=p->next; //辅助指针
p->next=s->next; //跳过x节点
free(s); //释放节点
return true; //删除成功
}
//递归
bool delete(LNode * L,int x){
if(L !=null){ //递归的出口
if(L->next->data==x) //判断节点是否为x
LNode *s=L->next;
L->next=s->next;
free(s)
return true;
else
delete(L->next , x); //递归地判断下一个节点
}
}