链表实现中出错



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

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

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

当您编写delete tmp时,您正在删除tmp指向的对象。但是,删除后的head仍然会指向相同的位置。取消引用它(*head)将导致问题,因为head所指向的对象已被删除。

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

相关内容

  • 没有找到相关文章

最新更新