gpt4 book ai didi

c++ - 链表中的递归

转载 作者:行者123 更新时间:2023-11-30 00:42:04 24 4
gpt4 key购买 nike

我想打印链表的反向。我是通过递归来做的。但是在函数 read 中调用 read(temp) 时,它给出了 BUS ERROR。

发生这种情况的原因是什么??

#include <iostream>

using namespace std;

struct node
{
int info;
node *next;
};

void read(node *start)
{
node *temp = start->next;

if(start == NULL)
cout<<start->info<<"\n";
else
{
read(temp);
cout<<start->info<<"\n";
}
}

int main()
{
node *start = NULL;

for(int i=0;i<5;i++)
{
node *temp = new node;
temp->info=i;
temp->next=NULL;

if(start == NULL)
start = temp;
else
{
temp->next = start;
start = temp;
}
}
read(start);
}

最佳答案

这看起来是罪魁祸首:

if(start == NULL)
cout<<start->info<<"\n";

如果 start 为 NULL,则不能取消引用它。

仔细一看,问题的根源在于:

node *temp = start->next;

您在检查 start 是否为 NULL 之前执行此操作。

最后,我觉得奇怪的是,您将名称“read”用于打印数据的函数。

关于c++ - 链表中的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1998002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com