gpt4 book ai didi

c++ - 编译错误递归链表

转载 作者:行者123 更新时间:2023-11-28 06:34:10 28 4
gpt4 key购买 nike

int insert(node* head) {
if (head == NULL) {
node* temp = new node;
if (head == NULL) {
cout << "Error";
return 0;
}
temp->data = 20;
temp->next = NULL;
} else {
temp->next = insert(temp->next);
}
return (temp);
}

我正在尝试递归地添加节点,但出现错误 temp was not declared。我不明白为什么会出现此错误。当我总是像这样定义 tempnode* temp = new node; 但是现在我得到了一个错误。

最佳答案

局部变量仅在声明它们的范围内可见,并且您是在第一个 if 语句中声明 temp。您需要将定义移到 if 子句之外:

int insert(node* head)
{
node* temp=new node; // <- move to here
if(head==NULL)
{
...
}
else
{
...
}
return temp;
}

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

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