zoukankan      html  css  js  c++  java
  • 《剑指Offer》题目:链表中倒数第k个结点

    题目描述:输入一个链表,输出该链表中倒数第k个结点

    题目分析:因为不能直接从链表的尾部遍历,所以要分两步走:

    第一步:从链表的头部开始遍历,直至链表的尾部,统计出链表结点的个数

    第二步:根据链表结点的个数,计算出倒数第k个结点的位置(从头部看的位置),即n-k+1个结点,输出该结点。

    Java代码:

    class ListNode {
        int val;
        ListNode next = null;
        ListNode(int val) {
            this.val = val;
        }
    }
    public class FindKthToTail {
        public ListNode FindKthToTail(ListNode head,int k) {
            ListNode listNode = head;
            if (listNode == null) return null;
            int temp = 0;
            while (listNode != null){
                listNode = listNode.next;
                temp++;
            }
            if(k>temp) return null;
            temp = temp - k + 1;
            ListNode listNode1 = head;
            while (temp > 1){
                listNode1 = listNode1.next;
                temp--;
            }
            return listNode1;
        }
    }
    技进乎艺,艺进乎道
  • 相关阅读:
    Java SE——线程介绍
    Vue
    Spring asm
    spring 自定义标签的实现
    Spring InitializingBean 接口以及Aware接口实现的原理
    值传递与引用传递
    redis学习
    ssm多数据源配置
    redis 启动
    json的设置
  • 原文地址:https://www.cnblogs.com/weekend/p/6979663.html
Copyright © 2011-2022 走看看