算法刷题笔记-输出链表的倒数第k个节点

231 阅读1分钟

参考:B站UP--子烁爱学习(推荐大家观看原视频)

  • 题目描述:

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

  • 题目解析



  • 这题是一个双指针应用的典型题型(同向双指针),设定两个指针,让一个指针先跑k-1下,然后就让两个指针一起走,直到前面的指针到达最后一个节点,这样,后指针就是指着倒数第k个节点。

  • 代码示例

public ListNode FindKthToTail(ListNode head,int k) {
        if(head==null||k==0){
            return null;
        }
        ListNode front=head;
        ListNode behind=head;
        for (int i = 1; i < k ; i++) {
            if(front.next==null){
                return null;
            }
            front=front.next;
        }

        while(front.next != null){
            front=front.next;
            behind=behind.next;
        }
        return behind;
    }