题解 | #链表中倒数最后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;
    }
};

全部评论

相关推荐

程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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