题目链接:剑指 Offer 22. 链表中倒数第k个节点
Ideas
算法:双指针
数据结构:链表
思路:我们可以创建两个指针,即快慢指针,快指针比慢指针快k步,那么当快指针到达链表尾部时,慢指针正好达到倒数第k个节点,直接返回慢指针指向的链表即可。
Code
C++
class Solution {
public:
ListNode* getKthFromEnd(ListNode* head, int k) {
ListNode *quick = head, *slow = head;
for (int i = 0; i < k; i++) {
quick = quick -> next;
}
while (quick) {
quick = quick -> next;
slow = slow -> next;
}
return slow;
}
};