天天看点

剑指offer 链表中倒数第k个结点

快慢节点 ,快节点先前进k-1步

class Solution {
public:
    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
        if(pListHead == NULL)
            return NULL;
        ListNode *p1=pListHead,*p2=pListHead;
        unsigned int i;
        for(i=0;i<k-1;i++){
            if(p1->next != NULL){
                p1 = p1->next;
            }else{
                return NULL;
            }
        }
        while(p1->next != NULL){
            p1 = p1->next;
            p2 = p2->next;
        }
        return p2;
    }
};