gpt4 book ai didi

c - 这是删除 C 中链表的正确方法吗?

转载 作者:太空宇宙 更新时间:2023-11-04 02:51:31 25 4
gpt4 key购买 nike

我正在学习 C 并习惯了指针。我想知道一个简单的链表结构,这是删除列表的正确方法吗?有人告诉我你必须手动处理所有事情(我更像是一个 Java 人,但试图转换)。对此有何建议或建设性批评?提前致谢。

/*   assume a struct with: int data; node *next; 
* and a global variable node *root; */
void delete_list() {
if(root==NULL)return;
node *temp = root;
while(root!=NULL) {
temp=root;
root=root->next;
free(temp);
}
}

最佳答案

是的,您的代码没问题。您可能希望 delete_list 将指向根元素的指针作为变量,并且您可以将其编写得更简洁一些,例如

void
delete_list (node *list)
{
while (list)
{
node *tmp = list->next;
free (list);
list = tmp;
}
}

关于c - 这是删除 C 中链表的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21659592/

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