C语言链表 求大佬看看哪儿出问题了,我删除第一个值没问题,删除第二第三以后的就乱码了,如图四五六
2个回答
展开全部
删除应该是
节点 *p=首节点
循环(p->下一个!=null)
{
如果(p->下一个.值==数据){
节点 *q=p->下一个
p->下一个=q->下一个
删除 q
}否则{p=p->下一个}
}
节点 *p=首节点
循环(p->下一个!=null)
{
如果(p->下一个.值==数据){
节点 *q=p->下一个
p->下一个=q->下一个
删除 q
}否则{p=p->下一个}
}
更多追问追答
追问
void deletenode(Q *head,int data)
{
Q *p=head,*q=head->next;
while(q!=NULL)
{
if(q->score==data)
{
p->next=q->next;
free(q);
}
else
{
q=p->next;
p=q;
}
}
}
这样呢??这个还是有问题
追答
void deletenode(Q *head,int data)
{
Q *p=head,*q=head->next;
while(q!=NULL)
{
if(q->score==data)
{
p->next=q->next;
free(q);
q=p->next;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询