这段代码有一个潜在的问题,即没有对头节点进行初始化。在创建头节点后,应该将其next指针设置为NULL。修改代码如下:
HLink Creatlist(HLink &L) {
int x, y;
HLink head;
head = (HLink)malloc(sizeof(LNode));
head->next = NULL; // 添加此行进行头节点初始化
int flag = 1;
HLink last = head;
while (true) {
printf("请输入第%d个系数和指数,(输入404停止插入数据进链表):", flag);
scanf("%d %d", &x, &y);
if (x == 404 || y == 404) {
break;
}
HLink a = (HLink)malloc(sizeof(LNode));
a->x = x;
a->y = y;
a->next = NULL;
last->next = a;
last = a;
flag++;
}
return head;
}
void Print(HLink L) {
HLink p = L->next;
while (p != NULL) {
printf("(%d, %d) ", p->x, p->y);
p = p->next;
}
printf("\n");
}
这样修改后,可以正确地创建链表并打印输出。
内容由零声教学AI助手提供,问题来源于学员提问