ZBLOG

#include #include typedef struct Node { int data; struct Node *next; }SNode, *LinkList; LinkList List_HeadInsert(LinkList &L) { SNode *s; int x; L = (LinkList)malloc(sizeof(SNode)); L->next = NULL; ...

这个问题可能是因为创建链表时没有正确处理最后一个输入的值,导致最后一个节点的next指针未被置为NULL,从而在逆序输出时出现了错误。可以在创建链表时对最后一个输入的值进行判断,如果是100,则不再创建新节点,并将上一个节点的next指针置为NULL。修改后的代码如下:

LinkList List_HeadInsert(LinkList &L) {

SNode *s, *p;
int x;
L = (LinkList)malloc(sizeof(SNode));
L->next = NULL;
scanf("%d", &x);
while(x != 100) {
    s = (SNode*)malloc(sizeof(SNode)); // 需要强制类型转换
    s->data = x;
    s->next = L->next;
    L->next = s;
    p = s; // 记录上一个节点
    scanf("%d", &x); 
} 
if(p != NULL) { // 处理最后一个节点
    p->next = NULL;
}
return L; // 返回创建好的链表头指针

}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=5272

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?