这是在谈论使用链接列表实现字典时来自算法设计手册。
一方面,部分内容是“在插入时检查是否last->next
仍然等于 NULL”。为什么我们必须检查它?如果我要插入一个元素,这将如何影响最后一项是否正确指向 NULL?如果我们正在正确地执行我们的实现,不是吗?我们不能说类似的话:
last->next = nodeToInsert;
last = last->next;
为什么那行不通?
其次,倒数第二段是否在讨论我们删除单链表中的最后一项并且必须识别新的最后一项的情况?并且我们只是(具有 O(n) 复杂性)遍历到倒数第二个项目并将其设置为最后一个并删除前一个?我们将它与预先存在的删除方法混合在一起,只是添加一个案例来判断它是否是最后一项?