没有报错链表结果没有输出

没有报错链表结果没有输出

上午好☀️☀️☀️️本答案参考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;

}