我正在练习Python,但我想不出任何解决此问题的方法。 问题是仅在一个遍历和恒定的空间内从单个链接列表中删除第k个最后一个元素。 我只能想到需要2次通过的解决方案。 另外,在问题中,没有提到列表的大小,因此我假设该大小是已知的。 有人可以给我展示一种方法吗?
答案 0 :(得分:1)
在进行操作时,将临时对象的指针/位置缓存在临时变量中。
所以会有一个循环,循环到最后。 将会有一条语句在临时缓存第(i-k-1)个元素。
此循环结束时,temp将具有要删除的项目的位置。
希望这会有所帮助。
答案 1 :(得分:1)
如果知道大小,则要删除CarController
元素。
如果不是这种情况,那么我将使用两个跑步者,一个是比第二个领先k个索引。当第一个跑步者到达列表的末尾时,第二个跑步者正好指向第k个最后一个元素。
答案 2 :(得分:0)
方法2(使用两个指针)
维护两个指针–参考指针 和主指针。初始化引用和主指向head的指针。 首先将参考指针从头移到n个节点。现在同时移动 指针一个接一个地指向参考指针到达终点。现在主要 指针将从末尾指向第n个节点。返回主指针。
可用python实现。