【发布时间】:2009-11-18 10:29:01
【问题描述】:
如何实现只有一个指针的双链表?
找到上一个和下一个节点需要 O(1) 时间。
struct Node
{
int val;
Node* p;
};
【问题讨论】:
-
将列表限制为最多两个节点:P
-
双向链表?你的意思是应该能够通过一个指向 any 节点的外部指针来双向遍历它?
-
这个有趣的问题也出现在“Programming Perls”一书的第 9 节(列)中。虽然经常提出 XOR 基本解决方案(可能是因为在那个时代,指针算术非常普遍),但我发现下面由 'Anna' 给出的解决方案非常有趣,尤其是当指针算术不可行时。