链表中倒数第k个结点
题目描述
输入一个链表,输出该链表中倒数第k个结点。
如果该链表长度小于k,请返回空。
示例1
输入
{1,2,3,4,5},1
返回值
{5}
解题思路
- 栈
- 遍历链表得到长度lenth,重新遍历至lenth-k个结点
- 快慢指针

def FindKthToTail(self , pHead , k ):
if not pHead or k == 0:
return None
cur = pHead
af = pHead
i = 0
while i < k and cur: #快指针在链表中
cur = cur.next
i += 1
if not cur and i < k: #k <= 链表长度
return None
while cur:
cur = cur.next
af = af.next
return af
这篇博客探讨了如何在链表中找到倒数第k个节点的问题。作者提供了两种解题思路,一种是使用栈,先遍历链表获取长度,再从头开始遍历找到目标节点;另一种是利用快慢指针,快指针先行k步,之后两者同步移动直至快指针到达链表末尾。示例代码展示了具体的实现方式。
323

被折叠的 条评论
为什么被折叠?



