gpt4 book ai didi

c - 在末尾插入链表

转载 作者:行者123 更新时间:2023-11-30 21:44:37 25 4
gpt4 key购买 nike

这是我用于在末尾插入节点的链表代码。我正在转储错误代码。所以请帮我看看代码有什么问题。

如果我继续返回;在最后和 *headRef = newnode; 之后的行处它的工作。那么为什么要返回一个 void 函数。

struct node
{
int data; // node format
struct node* next;
};

void insertAtEnd(struct node** headRef, int newData)
{
struct node* ptr;
struct node* newnode;
ptr = (*headRef);
newnode = (struct node*)malloc(sizeof(struct node));
newnode->data = newData;
newnode->next = NULL;
if (*headRef == NULL)
{
*headRef = newnode;
}
while (ptr->next != NULL)
{
ptr = ptr->next;
}
ptr->next = newnode;
}

最佳答案

你应该必须在 if 内部返回,因为在 if 语句之后它再次进入 while 循环并在末尾添加额外的节点

struct node
{
int data; // node format
struct node* next;
};

void insertAtEnd(struct node** headRef, int newData)
{
struct node* ptr;
struct node* newnode;
ptr = (*headRef);
newnode = (struct node*)malloc(sizeof(struct node));
newnode->data = newData;
newnode->next = NULL;
if (*headRef == NULL)
{
*headRef = newnode;
return;

}
while (ptr->next != NULL)
{
ptr = ptr->next;
}
ptr->next = newnode;
return;
}

关于c - 在末尾插入链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44651311/

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