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

2025年03月12日 15:40
有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;
}