AcWing 33. 鏈表中倒數第k個節點

習題地址 https://www.acwing.com/solution/acwing/content/2997/算法

題目描述
輸入一個鏈表,輸出該鏈表中倒數第k個結點。數組

注意:spa

k >= 0;
若是k大於鏈表長度,則返回 NULL;code

樣例blog

輸入:鏈表:1->2->3->4->5 ,k=2

輸出:4

算法1
除開大佬說的遍歷鏈表兩次 也能夠開一個數組記錄鏈表的元素地址 而後返回倒數第K個get

C++ 代碼

it

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* findKthToTail(ListNode* pListHead, int k) {
        vector<ListNode*> v;
        ListNode* p = pListHead;
        if(pListHead == NULL)
            return NULL;
        while(p != NULL){
            v.push_back(p);
            p = p->next;
        }
        if(k > v.size())
            return NULL;

        int idx = v.size();

        return v[idx-k];
    }
};

做者:defddr
連接:https://www.acwing.com/solution/acwing/content/2997/
來源:AcWing
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
相關文章
相關標籤/搜索