我在网上搜索了这个问题,得到的答案是可以使用异或链表来实现,或者问题中的链表必须是双向链表。
但我认为这个问题本身并不完整,因为为了实现 XOR 链表函数,节点的下一个指针必须采用合适的形式,即 (下一个指针) xor (前一个指针)。但什么也没有给出。
给我一些好的解决方案。
最佳答案
除非列表是双向链表,否则无法获取位置 k 之前的元素。如果每个节点都指向其下一个节点,并且这是它携带的唯一连接,那么它应该如何访问前一个节点?将其视为迭代:一旦调用下一个值,就无法返回。
如果有必要访问 k 之前的值,您可以 1)在遇到元素时保存它们(可能不是一个好主意)或 2)应考虑使用其他数据结构,具体取决于实现。
关于data-structures - 如果链表的头指向第k个元素,那么如何获取第k个元素之前的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31684560/