小白混混欲睡:
这一类问题:思路很简单,找链表中最后K个结点,需要解决的问题,如何定义K。
1、双指针,指针之间的距离为K,那么K即可定义。
2、我看别人用了栈,栈能够去除后K个结点,但需要注意,链表重新构造,next指针的反向的。
3、我个人对递归比较感兴趣,具体就不详细说了,可以看题解。
代码:

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param pHead ListNode类 
     * @param k int整型 
     * @return ListNode类
     */
    ListNode* FindKthToTail(ListNode* pHead, int k) {
        // write code here
        ListNode* first = pHead;
        ListNode* second = pHead;
        int sum = 0;


        for(int i=0;i<k;i++){
            if(first == NULL) return NULL;
            first = first->next;
        }

        while(first != NULL){
            first = first->next;
            second = second->next;
        }
        return second;
    }
};