0%

返回倒数第k个节点

题目地址

难度:

题目描述:

实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。

注意:本题相对原题稍作改动

示例:

1
2
输入: 1->2->3->4->5 和 k = 2
输出: 4

说明:

给定的$k$保证是有效的。

🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️解题过程🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️🙋‍♂️
解题过程:

思路:

和上道题链表中倒数第k个节点基本一样,只是把返回的节点改成节点的值而已。

遍历链表,把每个结点指针存到vector容器中,返回倒数第k个节点的值可以直接下标获取。

c++代码:(执行用时4ms,击败73.35%,内存消耗10.6M,击败5.61%)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
int kthToLast(ListNode* head, int k) {
//结点指针容器
vector<ListNode*> tmp;
while(head){
tmp.push_back(head);
head=head->next;
}
return tmp[tmp.size()-k]->val;
}
};
⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳总 结⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳⏳
总结:

没有官方题解,轻松加愉快🥱

------------- THE END! THANKS! -------------