pLNode deleteAllMatchVal(pLNode L, int x)
{
if(L==NULL)
return NULL;
pLNode p = L;
pLNode q = p->next;
while(q!=NULL)
{
if(q->data == x)
{
p->next = q->next;
free(q);
}
else
{
p = p->next;
}
q = p->next;
}
if(L->data == x) //要考虑头结点
{
q = L;
L = L->next;
free(q);
}
return L;
}
//下面这个单链表头节点为head
Node *del_node(Node *head)
{
Node *p,*q;
for(q=head,p=head->next;p!=NULL;p=p->next,q=q->next)
{
if(p->data == x)
{
q->next=p->next;
free(p);
}
}
return head;
}