如果删除第一个节点就删除不成功,其它的都可以,那我的这个函数写错了吗
struct link *Delete(struct link *h,struct link *ps){
struct link *p,*q;
p=h;
if(p->data==ps->data)
{
h=p->next;
free(p);
return h;
}
else
{ while(p->next!=NULL)
{ if(p->next->data==ps->data)
{
q=p->next;
p->next=q->next;
free(q);
return h;
}
else p=p->next;
}
cout<<"未找到要删除的结点!"<<endl;
}
}