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

链表中倒数第k个结点

https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */

/**
 * 
 * @param pListHead ListNode类 
 * @param k int整型 
 * @return ListNode类
 */
struct ListNode* FindKthToTail(struct ListNode* pListHead, int k )
{
    //思路2:快慢指针,快指针先走k步,然后快慢指针一起走,当快指针等于NULL时,慢指针的位置就是要找的
           //快指针先走k步,然后快慢一起走,这样一直保持着k个距离,当快指针到最后时,慢指针就是倒数第k个
    if (pListHead == NULL)
        return NULL;
    struct ListNode* slow = pListHead;
    struct ListNode* fast = pListHead;
    k = k - 1;
    while (k--)
    {
        fast = fast->next;
        if (fast == NULL)
            return NULL;
    }
    while (fast->next)
    {
        slow = slow->next;
        fast = fast->next;
    }
    return slow;
}

全部评论

相关推荐

勤劳的香菇求被捞求offer:满帮笔试都不给我发 似乎被卡本了
投递满帮集团等公司10个岗位
点赞 评论 收藏
分享
10-18 13:01
已编辑
西安理工大学 C++
小米内推大使:建议技能还是放上面吧,hr和技术面试官第一眼想看的应该是技能点和他们岗位是否匹配
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务