C语言链表 求大佬看看哪儿出问题了,我删除第一个值没问题,删除第二第三以后的就乱码了,如图四五六

2025-03-12 15:40:41
推荐回答(2个)
回答1:

删除应该是
节点 *p=首节点
循环(p->下一个!=null)
{
如果(p->下一个.值==数据){
节点 *q=p->下一个
p->下一个=q->下一个
删除 q
}否则{p=p->下一个}
}

回答2:

以上代码中58行至64行应改为:

if(q->score==data){
p->next=q->next;
free(q);
q=p->next;
}else{
p=q;
q=p->next;
}