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

Posted lisin-lee-cooper

tags:

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

一、题目描述

输入一个链表,输出该链表中倒数第 k 个节点。为了符合大多数人的习惯,本题从 1 开始计数,即链表的尾节点是倒数第 1 个节点。

例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6 。

这个链表的倒数第 3 个节点是值为 4 的节点。

示例:

给定一个链表: 1->2->3->4->5, 和 k = 2.

返回链表 4->5.

二.示例代码

public class GetKthFromEnd 

    public static void main(String[] args) 
        ListNode listNode = new ListNode(1);
        ListNode listNode2 = new ListNode(2);
        ListNode listNode3 = new ListNode(3);
        ListNode listNode4 = new ListNode(4);
        ListNode listNode5 = new ListNode(5);
        listNode.next = listNode2;
        listNode2.next = listNode3;
        listNode3.next = listNode4;
        listNode4.next = listNode5;
        int k = 2;
        ListNode result = getKthFromEnd(listNode, k);
        System.out.println(result);
    

    private static ListNode getKthFromEnd(ListNode head, int k) 
        ListNode former = head;
        ListNode latter = head;
        for (int i = 0; i < k; i++) 
            former = former.next;
        
        while (former != null) 
            latter = latter.next;
            former = former.next;
        
        return latter;
    


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

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

算法剑指 Offer 22. 链表中倒数第k个节点

剑指Offer打卡22. 链表中倒数第k个节点

剑指Offer打卡22. 链表中倒数第k个节点

力扣专题——剑指 Offer 22. 链表中倒数第k个节点

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