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个节点的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Algorithm 剑指 Offer 24. 反转链表

LeetCode Algorithm 剑指 Offer 18. 删除链表的节点

LeetCode Algorithm 剑指 Offer 06. 从尾到头打印链表

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

LeetCode Algorithm 剑指 Offer 24. 反转链表

LeetCode Algorithm 剑指 Offer 57 - II. 和为s的连续正数序列