这个问题可能是因为创建链表时没有正确处理最后一个输入的值,导致最后一个节点的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; // 返回创建好的链表头指针
}


        
        
        
        
        
        
        
        
        
                
                
                
                
                
                
                