单链表相关面试题--4.输入一个链表,输出该链表中倒数第k个结点

单链表相关面试题--4.输入一个链表,输出该链表中倒数第k个结点_第1张图片

/*
解题思路:
快慢指针法 fast, slow, 首先让fast先走k步,然后fast,slow同时走,fast走到末尾时,slow走到倒数第k个节点。
*/
class Solution {
public:
    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
        struct ListNode* slow = pListHead;
        struct ListNode* fast = slow;
        while(k--)
        {
            if(fast)
                fast = fast->next;
            else
                return NULL;
        }
         
        while(fast)
        {
            slow = slow->next;
            fast = fast->next;
        }
         
        return slow;
    }
};

 

你可能感兴趣的:(数据结构,链表,面试,数据结构)