- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
void addNewNode (struct node *head, int n)
{
struct node* temp = (struct node*) malloc(sizeof(struct node));
temp -> data = n;
temp -> link = head;
head = temp;
}
上面给出的代码是在链表头部添加新节点的函数的普遍错误版本。通常正确的版本是这样的,
void addNewNode (struct node **head, int n);
void addNewNode (struct node * &head, int n);
我为此目的设计了另一个但简单的函数,效果很好。
struct node* addNewNode (struct node *head, int n)
{
struct node* temp = (struct node*) malloc(sizeof(struct node));
temp -> data = n;
temp -> link = head;
return temp;
}
但我还没有看到在代码和教程中使用或讨论过这种方法,因此我很想知道这种方法是否存在缺陷。
最佳答案
缺陷在于您依赖于调用者执行将头指针更新到列表的最后一步。
如果调用者忽略这样做,编译器不会提示,并且出于所有意图和目的,列表似乎没有改变(并且您将泄漏节点的内存)。
关于c++ - 将新节点添加到链表的新方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/257259/
如果有人能为我分解它,让我能理解它,我会非常感激。我知道它用于通过 apply 方法创建新对象。 Function.prototype.new = function () { var args
新版本的HADOOP中有一个方法。http://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/FileSystem.html#conc
根据支持库变更日志和 Fragment 类文档 ( https://developer.android.com/reference/android/support/v4/app/Fragment.ht
根据支持库更改日志和 Fragment 类文档 (https://developer.android.com/reference/android/support/v4/app/Fragment.htm
执行Async BigJob() 的无限运行任务的正确方法是什么?并且可以根据要求停止 提示:我正在尝试学习 [一种] 新方法来更新我现有的策略。 我有一个简单的程序(测试程序),它有一个开始 和停止
我将解释我的想法:我使用 python 作为谷歌应用程序引擎 + js + css 主项目将存储在 src 文件夹下,如下所示:\src \app <--- 这里是 gae 的所有 python 应用
我是一名优秀的程序员,十分优秀!