链表中倒数第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