zoukankan      html  css  js  c++  java
  • 剑指offer十四之链表中倒数第k个结点

    一、题目

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

    二、思路

        两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第k个节点。然后两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了。

    三、代码

    /*
    public class ListNode {
        int val;
        ListNode next = null;
    
        ListNode(int val) {
            this.val = val;
        }
    }*/
    public class Solution {
        public ListNode FindKthToTail(ListNode head,int k) {
          if(head==null || k<=0){
                return null;
            }
    
            ListNode pre=head;
            ListNode last=head;
    
            for(int i=k-1;i>0;i--){ //移动k-1步,移动到第k个节点
                if(last.next!=null){
                last=last.next;
                }else {
                    return null;
                }
            }
    
            while (last.next!=null){
                last=last.next;
                pre=pre.next;  //同步移动
            }
            return pre;
        }
    }
    View Code

    -----------------------------------------------------------------------------------------------------

    参考链接:https://www.nowcoder.com/questionTerminal/529d3ae5a407492994ad2a246518148a

  • 相关阅读:
    菜鸟浅谈软件开发项目管理
    中国准货币体系的概要简析
    使用dockercompose安装wordpress
    货币乘数
    安全测试的相关内容
    TCP三次握手和四次挥手
    HTTP协议相关
    描述浏览器登录的过程
    AJAX相关知识
    什么是热钱
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7617124.html
Copyright © 2011-2022 走看看