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;
        }
    }
    技进乎艺,艺进乎道
  • 相关阅读:
    PDO的预处理操作
    关于OOP(面向对象)
    关于MySql
    任务三
    任务二
    php文件操作
    php的会话技术
    php的常量 、变量和作用域
    php的函数和超全局变量
    预发布环境和分支部署
  • 原文地址:https://www.cnblogs.com/weekend/p/6979663.html
Copyright © 2011-2022 走看看