zoukankan      html  css  js  c++  java
  • <剑指offer> 第12题

    题目:

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

    从1开始技术,即链表的尾节点为倒数第1个节点

    思路:

    倒数第1个节点和倒数第k个节点相距k - 1个节点,设定两个指针,让第1个指针先走k-1步,第2个指针再同时移动,当第1个指针走到了末尾,则第2个指针走到了倒数第k个节点

    代码实现:

    public class Twelfth {
        class Node{
            Node next;
            int val;
        }
        
        public static Node findNode(Node head, int k){
            if(head == null || k < 1){
                return null;
            }
            Node pointer1 = head;
            Node pointer2 = head;
            for(int i = 1; i < k; i ++){
                if(pointer1.next != null){
                    pointer1 = pointer1.next;
                }else {
                    //已经没有节点了,说明i没有到大k-1,说明k太大,链表中没有那么多元素
                    return null;
                }
            }
            while(pointer1.next != null){
                pointer1 = pointer1.next;
                pointer2 = pointer2.next;
            }
            return pointer2;
        }
    }
  • 相关阅读:
    容器之队列的使用
    容器之栈的使用
    rapidxml的使用
    C++判断文件夹是否存在并创建文件夹
    VS2017,不能将const char *转为char *
    CSS_day01_选择器
    HTML_day02_列表
    HTML_day01基本标签
    python_day3
    python_day2
  • 原文地址:https://www.cnblogs.com/HarSong13/p/11327454.html
Copyright © 2011-2022 走看看