data-structures - 如果链表的头指向第k个元素,那么如何获取第k个元素之前的元素?

标签 data-structures linked-list doubly-linked-list xor-linkedlist

我在网上搜索了这个问题,得到的答案是可以使用异或链表来实现,或者问题中的链表必须是双向链表

但我认为这个问题本身并不完整,因为为了实现 XOR 链表函数,节点的下一个指针必须采用合适的形式,即 (下一个指针) xor (前一个指针)。但什么也没有给出。 给我一些好的解决方案。

最佳答案

除非列表是双向链表,否则无法获取位置 k 之前的元素。如果每个节点都指向其下一个节点,并且这是它携带的唯一连接,那么它应该如何访问前一个节点?将其视为迭代:一旦调用下一个值,就无法返回。

如果有必要访问 k 之前的值,您可以 1)在遇到元素时保存它们(可能不是一个好主意)或 2)应考虑使用其他数据结构,具体取决于实现。

关于data-structures - 如果链表的头指向第k个元素,那么如何获取第k个元素之前的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31684560/

相关文章:

java - 如何从列表 <String> 中删除换行符

c++ - 无法从主 C++ 获取要打印的链表

c - 在结构中引用结构,在函数中引用结构

c - C 中的递归堆栈

java双向链表删除节点

c - 重新排列双向链表时偶尔出现段错误

c# - 任何人都可以解释图形数据结构的 java 或 C# 实现吗

algorithm - 寻找合并排序列表的算法

database - 创建高流量临时数据库的最佳方法是内存中还是 SQL?

c++ - 双向链表的自定义实现不起作用(教育)