链表中倒数第k个结点

时间:2019-11-22
本文章向大家介绍链表中倒数第k个结点,主要包括链表中倒数第k个结点使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

链表中倒数第k个结点

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

代码实现

package 剑指offer;


/**
 * @author WangXiaoeZhe
 * @Date: Created in 2019/11/22 15:35
 * @description:
 */

public class Main6 {

    public class ListNode {
        int val;
        ListNode next = null;

        ListNode(int val) {
            this.val = val;
        }
    }

    public static void main(String[] args) {

    }

    public ListNode getK(ListNode head, int k) {
        if (head == null) {
            return head;
        }
        if (k <= 0) {
            return null;
        }

        /**
         * 快慢指针
         */

        ListNode pre = head;
        ListNode last = head;
        for (int i = 0; i < k; i++) {
            if (pre.next != null) {
                pre = pre.next;
            } else {
                return null;
            } 
        }

        while(pre.next!=null){
            pre=pre.next;
            last=last.next;
        }
        return last;
    }

}

原文地址:https://www.cnblogs.com/wuhen8866/p/11911966.html