习题地址 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 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。