链接列表实现中的错误

时间:2012-07-07 18:35:30

标签: c++ linked-list

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

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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