|
|
1
4
有三个重要错误: push()---固定
我认为通过分配
这样不行。
也,
这真的很糟糕
. 通过设置
Node val=节点(i);
范围
你需要把它放在堆上,这样它就会一直放下去,直到你不再需要它为止。 ... 我们找到了你的毁灭者!既然已经分配了一个节点,就需要取消分配它。所以在析构函数中这样做——遍历列表并释放所有节点。 |
|
|
2
1
以下情况会导致未定义的行为:
以后不要忘记删除所有节点。 |
|
|
3
0
push()方法不正确。第一次推送节点时,它会正确地将其分配给firstNode,但随后的每一次push()都会将currentNode设置为新节点,然后将currentNode设置为NULL—实际上并没有向列表中添加任何内容。
我不打算为您编写代码,但下面是push()函数的工作方式。关键是您应该将现有节点的“下一个”字段设置为新节点,而不是将currentNode设置为新节点:
您基本上已经完成了第1部分,但是第2部分仍然需要实现。请随时要求澄清/提出批评。:) |
|
4
0
像这样试试看 Node* val=new Node(i)以前u存储的是临时变量。因此,没有存储动态内存中的ndoe,所以可以给出seprate内存。 创建节点时,它是临时创建的 |
|
|
GabrielChu · 如何释放带有指针的链表 8 年前 |
|
|
Link · 向链表中添加结构似乎不起作用 8 年前 |
|
|
Jheel rathod · 带有构造函数的ocaml递归类型记录 8 年前 |
|
|
amr125 · 在链表中插入元素-索引不存在 8 年前 |
|
|
JOSI · 求职面试的基本内容-使用链表、数组 8 年前 |
|
|
Sikorski · 是否有必要对仅用于删除操作的列表进行同步 8 年前 |
|
|
Pushkar Mahajan · 如何避免分段核心转储错误? 8 年前 |