1. 程式人生 > >劍指offer____連結串列中倒數第k個節點

劍指offer____連結串列中倒數第k個節點

輸入一個連結串列,輸出該連結串列中倒數第k個結點。
 

struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};
class Solution {
public:
    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
        if(pListHead == NULL || k <= 0) return NULL;
        ListNode *p = pListHead;
        while(k-- >1)
        {
            p = p->next;
            if(p == NULL) return NULL;
        }
        ListNode *q = pListHead;
        while(p->next!= NULL)
        {
            q = q->next;
            p = p->next;
        }
        return q;
    }
};