求一道C语言改错题

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 18:28:03
求一道C语言改错题

求一道C语言改错题
求一道C语言改错题

求一道C语言改错题
void InsertList(struct Link *H, int n)
{
struct Link *p, *q, *s;
s = (struct Link *)malloc(sizeof(struct Link));
s->data = n;
q = H;
p = H->next;
while (p && n>p->data)
{
q = p;
p = p->next;
}
s->next = q->next;
q->next = s;
}
就是把最后两句换个位置.
因为先执行q->next = s;的话,此时q的next已经是s了,如果再执行s->next = q->next;s就指向自己了,链表就链接不起来了.