習題地址 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 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。