在被访问节点被删除时查找自上次的第N个节点

Ash*_*dav 4 linked-list

所以问题是:在链表中找到第k个节点frm if nodes a disappearing once read.这应该只在一个通道中完成.

尽量避免额外的记忆.

我知道这个问题的简单解决方案,其中两个指针(P和Q让我们说)到标题节点,并且它们的P增加N次,然后两个指针递增.指针Q指向最后的第N个元件.

但问题在这里有所不同.一旦读取节点就会消失,所以无法使用两种指针方式.

请在阅读之前不要关闭这个问题.因为这个问题不同.

谢谢

Spe*_*ine 6

继续在某处存储K个元素,例如,如果K为6,则在遍历链表时在某处存储6个最新读取节点,并在读取下一个节点时,存储该元素并从已存储的节点中删除最旧的读取​​节点.一旦链表结束,您将存储最后的K个元素(使用链接列表或数组等),并且最后一个Kth元素将是最早存储的元素.

这可能不是我在思考时打字的最有效的解决方案,但它应该有效.