c++ - 为什么不删除当前节点并将前一个节点指向下一个节点?
问题描述
假设您有一个指针 p 指向一个简单链表中的一个节点,该节点不在列表中的最后一个节点上。除了每个节点中的以下链接之外,您没有其他指向列表的指针。描述一个 O(1) 算法,该算法在逻辑上删除存储在 p 指向的节点中的值(建议:使用下一个节点)。
解决方案:将来自下一个节点的信息传递到 p 指向的当前节点,并将下一个节点从列表中删除。
为什么不删除当前节点并将前一个节点指向下一个节点?
解决方案
提出的“解决方案”不是我会使用的解决方案。我会做你在这里的建议。如果这是一个双向链表(问题没有说),那么您只需链接指向的节点p
并丢弃它。
当然,当语言是“C++”时,您也可以简单地使用标准库中的“股票列表对象”……而“C”则要求您进行“实际指针旋转”。
推荐阅读
- android - 尝试在空对象引用上调用虚拟方法 'void android.widget.EditText.setText
- java - 如何在 Python 中使用 tensorflow 训练图像分类器模型并在 Java 应用程序中使用经过训练的模型?
- django - 如何在更新期间在 django 中显示模型的主键
- android - 在文本更改侦听器上添加破折号时无法从 EditText 字段中删除文本
- bash - bash:无限期地使用并行命令运行脚本
- json - CouchDB 导入 JSON 文件
- python-3.x - VS Code 终端无法识别 Python 解释器或任何命令(完全初学者)
- python - 高尔顿代码 - 从递归到迭代
- reactjs - 处理访问令牌并对安全路由做出反应的正确方法是什么?
- c# - Xamarin C#如何使用取消令牌来停止进度条进程?