LeetCode Algorithm 剑指 Offer 22. 链表中倒数第k个节点

Posted Alex_996

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 剑指 Offer 22. 链表中倒数第k个节点相关的知识,希望对你有一定的参考价值。

题目链接:剑指 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;
    
;

以上是关于LeetCode Algorithm 剑指 Offer 22. 链表中倒数第k个节点的主要内容,如果未能解决你的问题,请参考以下文章