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

  • 相关阅读:
    k8s默认调度器常见调度算法解析
    K8s集群相关证书
    flannel overlay网络浅析
    Pod挂载LocalStoragePv过程理解
    k8s开发实践
    Flex布局【弹性布局】学习
    python中的技巧——杂记
    Tarjan + bfs HYSBZ 1179Atm
    POJ1988 Cube stacking(非递归)
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7617124.html
Copyright © 2011-2022 走看看