首页 > 解决方案 > 为什么不删除当前节点并将前一个节点指向下一个节点?

问题描述

假设您有一个指针 p 指向一个简单链表中的一个节点,该节点不在列表中的最后一个节点上。除了每个节点中的以下链接之外,您没有其他指向列表的指针。描述一个 O(1) 算法,该算法在逻辑上删除存储在 p 指向的节点中的值(建议:使用下一个节点)。

解决方案:将来自下一个节点的信息传递到 p 指向的当前节点,并将下一个节点从列表中删除。

为什么不删除当前节点并将前一个节点指向下一个节点?

标签: c++

解决方案


提出的“解决方案”不是我会使用的解决方案。我会做你在这里的建议。如果这是一个双向链表(问题没有说),那么您只需链接指向的节点p并丢弃它。

当然,当语言是“C++”时,您也可以简单地使用标准库中的“股票列表对象”……而“C”则要求您进行“实际指针旋转”。


推荐阅读