我正在为大学课程学习一本书中的链表。我在删除链接列表中的节点时遇到问题。列表的给定结构是
struct Node {
int item;
Node *next;
}
在我所读的这本书的部分中,演示了使用两个指针删除节点:prev和cur(cur指向要删除的节点)。
将prev重新路由到cur:之后的节点后
prev->next = cur->next;
我们继续释放cur中用于节点的内存。我的问题是这个部分,使用的代码是:
cur->next = NULL;
delete cur;
cur = NULL;
第一行和第三行不是多余的吗?还是我遗漏了什么?既然我们像在第二行中那样删除cur,那么我们就不需要先设置cur->next=null对吗?
在书中,它给出了一个解释,但没有多大意义。有什么帮助吗?
显然,是的,第一行和第三行是冗余