AcWing 33. 链表中倒数第k个节点
宋标 Lv5

题目

输入一个链表,输出该链表中倒数第 个结点。

注意:

  • k >= 1;
  • 如果 大于链表长度,则返回 NULL;

数据范围

链表长度

样例

输入:链表:1->2->3->4->5 ,k=2

输出:4

题解

快慢指针做法

1
2
3
4
5
6
7
8
9
10
class Solution {
public:
ListNode* findKthToTail(ListNode* p, int k) {
auto *n = p;
while (n && k) n = n -> next, -- k;
if (k) return nullptr;
while (n) p = p -> next, n = n -> next;
return p;
}
}
 评论