供参考:
int ListDelete(SingleLinkedList **L,ElemType x)
{
SingleLinkedList *p,*pre=NULL;
p = (*L);
if(p == NULL)
{
printf("链表为空,无法进行删除操作!");
return 0;
}
while(p != NULL)
{
if(p->data == x)
{
if(p == (*L)){
(*L) = (*L)->next;
free(p);
}
else{
pre->next = p->next;
free(p);
}
return 1;
}
pre = p;
p = p->next;
}
return 0;
}