一次删除单个链接列表中的第k个元素

时间:2019-06-15 16:24:00

标签: python singly-linked-list

我正在练习Python,但我想不出任何解决此问题的方法。 问题是仅在一个遍历和恒定的空间内从单个链接列表中删除第k个最后一个元素。 我只能想到需要2次通过的解决方案。 另外,在问题中,没有提到列表的大小,因此我假设该大小是已知的。 有人可以给我展示一种方法吗?

3 个答案:

答案 0 :(得分:1)

在进行操作时,将临时对象的指针/位置缓存在临时变量中。

所以会有一个循环,循环到最后。 将会有一条语句在临时缓存第(i-k-1)个元素。

此循环结束时,temp将具有要删除的项目的位置。

希望这会有所帮助。

答案 1 :(得分:1)

如果知道大小,则要删除CarController元素。

如果不是这种情况,那么我将使用两个跑步者,一个是比第二个领先k个索引。当第一个跑步者到达列表的末尾时,第二个跑步者正好指向第k个最后一个元素。

答案 2 :(得分:0)

From GeeksforGeeks

  

方法2(使用两个指针)

     

维护两个指针–参考指针   和主指针。初始化引用和主指向head的指针。   首先将参考指针从头移到n个节点。现在同时移动   指针一个接一个地指向参考指针到达终点。现在主要   指针将从末尾指向第n个节点。返回主指针。

可用python实现。