实现查找单链表中第k到最后一个元素的算法。
是上述问题的一个好解决方案,反转链表然后再次遍历并获得第k个元素?
首先是singly-linked
。因此,这是一个很好的提示,您不应该尝试反转它,因为您需要同样多的存储空间来进行复制。
你可以使用修改后的龟兔式算法:
- 在列表的开头使用
hare
指针 - 移动至少
K
元素 - 如果你之前点击了
last
元素,那么你找不到Kth
到最后一个元素。 - 在列表的开头放置一个
turtle
指针 - 现在运行
hare
指针到列表的末尾,每次移动hare
指针,移动turtle
。
当hare
指针到达列表末尾时,turtle
指针在Kth
到最后一个元素上。