2

以下是 Adam Drozdek的 C++ 中的数据结构和算法(第 2 版)中的单链表实现的代码摘录,其中涉及删除具有给定值的节点。

IntNode *tmp = head->next;
head = head->next;
delete tmp;

head在其他地方定义为 IntNode*)此代码片段中是否有拼写错误,或者我的心理处理器是否不正确,在每次执行上述代码片段后,该head将始终为空指针?

4

2 回答 2

0

当您写入时delete tmp,您正在删除 指向的对象tmp。但是,删除后head仍然会指向同一个地方。取消引用它 ( *head) 会导致问题,因为head指向的对象已被删除。

于 2012-07-07T18:50:49.873 回答
0

不,它将指向列表的第二个元素(现在是第一个元素)。

于 2012-07-07T18:37:45.327 回答