题解 | #链表中倒数最后k个结点#

链表中倒数最后k个结点

http://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9

这道题需要注意的就是边界情况
1、链表为空 --返回空
2、k值小于等于0 ---返回空
3、链表长度小于k值 ---返回空
4、正常情况,链表长度大于k值 ---快慢指针

class Solution:
    def FindKthToTail(self , pHead , k):
        if k<=0 or not pHead:  # 边界1、2
            return None
        dummy = ListNode(-1)
        dummy.next = pHead
        pre = dummy
        cur = dummy.next
        while k:
            if not cur:  # 边界3.  k值还未递减到0,已经到达了链表末尾,则链表长度小于k,返回None
                return None
            cur = cur.next  # 边界4,正常情况,快慢指针
            k -= 1
        while cur:  # 正常情况,快慢指针
            pre = pre.next
            cur = cur.next
        return pre.next

全部评论

相关推荐

2025-11-22 02:49
已编辑
天津理工大学 golang
爱蜜莉雅碳劝退测开:边学边背八股吧,时间很紧张,最主要的是暑期基本明年3月就开了,你试试看先花两个月速成,看能不能小厂实习或者无实习找暑期(虽然很难感觉)
双非本科求职如何逆袭
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务