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

链表中倒数最后k个结点

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

class Solution {
public:
    ListNode* FindKthToTail(ListNode* pHead, int k) {

        ListNode *fast = pHead;
        ListNode *last = pHead;
        int len;
        //先使用快指针 fast 进行一次完整的遍历,统计链表的长度 len
        while (fast!=NULL) {
            fast = fast->next;
            len++;
        }
        //判断链表长度 ? k
        if(len<k)   return {};
        //循环将慢指针 last 遍历到倒数第K个节点,然后返回该节点即可
        for(int i=0;i<len-k;i++){
            last = last->next;
        }
        return last;

    }
};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务