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

链表中倒数最后k个结点

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

//参考了剑指offer中记载的快慢指针法。快指针提前走k-1步。快指针抵达终点时慢指针就能到倒数第k个节点处了。例:1->2。求倒数第1个节点。提前走0步。快慢指针一起到最后一个节点。
class Solution {
public:
    ListNode* FindKthToTail(ListNode* pHead, int k) {
        if(pHead==nullptr || k<=0)
            return nullptr;
        int times=k-1;
        ListNode* fast=pHead;
        ListNode* slow=pHead;
        for (int i=k-1; i>0; i--) {
            if(fast->next==nullptr)
            {
                return nullptr;
            }else {
                fast=fast->next;
            }
        }
        while (fast->next!=nullptr) {
            fast=fast->next;
            slow=slow->next;
        }
        return slow;
    }
};

全部评论

相关推荐

Edgestr:没项目地址就干脆把那一栏删了呗
点赞 评论 收藏
分享
01-12 17:45
门头沟学院 Java
985废物一枚:就是问问你能不能接受北京的房租,hr也知道公司工资不高,大概率是要贴钱的
找实习记录
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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