上午好☀️☀️☀️️本答案参考ChatGPT-3.5
问题:为什么链表的结果没有输出?
回答:
链表结果没有输出可能是以下原因:
没有给链表添加数据,或者数据添加错误。
打印链表数据时,可能出现了语法错误或逻辑错误。
可能没有给头节点进行初始化,导致出现异常。
下面是解决方案:
确认链表有没有添加数据或数据添加是否正确,需要检查getnode函数是否正确创建节点并给节点赋值。
检查打印链表数据语句是否正确,可用调试工具,如GDB等定位语法或逻辑错误。
确认头节点是否初始化,如果没有初始化会导致程序出现异常,可在头节点赋值前,给其初始化为NULL。
修改后的代码:
#include
#include
struct node{
int data;
struct node*next;
};
struct node* getnode(int data){
struct nodetemp=(struct node)malloc(sizeof(struct node));
temp->next=NULL;
temp->data=data;
return temp;
}
void mprint(struct nodehead){
struct nodetemp=head;
while(temp!=NULL){
printf("%d ",temp->data);
temp=temp->next;
}
}
int main(){
struct node*head1=NULL,head2=NULL;
struct nodetemp1,*temp2;
int i,j;
// 给链表1添加数据(0~4)
for(i=0;i<5;i++){
temp1=getnode(i);
if(head1==NULL){
head1=temp1;
}
else{
temp1->next=head1;
head1=temp1;
}
}
// 给链表2添加数据(3~8)
for(j=3;j<6;j++){
temp2=getnode(j);
if(head2==NULL){
head2=temp2;
}
else{
temp2->next=head2;
head2=temp2;
}
}
// 打印链表数据
mprint(head1);
printf("\n");
mprint(head2);
return 0;
}