• 剑指offer例题——链表中倒数第K个结点


    题目描述

    输入一个链表,输出该链表中倒数第k个结点。
    编程过程
    此处采用两个指针依次后移的方法来求解,首先,用一个指针移到第k个位置,之后将第二个指针放在第一位,与第二个指针一同移动,当第二个指针移动到最后的时候,第一个指针即处于倒数第k个结点。
    考虑:链表为空、k为小于等于零的数,以及k的长度大于链表长度等情况。
     1 /*
     2 public class ListNode {
     3     int val;
     4     ListNode next = null;
     5 
     6     ListNode(int val) {
     7         this.val = val;
     8     }
     9 }*/
    10 public class Solution {
    11     public ListNode FindKthToTail(ListNode head,int k) {
    12         if (head == null || k <= 0){
    13             return null;
    14         }
    15         ListNode pre = head;
    16         ListNode last = head;
    17         for(int i = 1; i<k; i++){
    18             if(pre.next != null){
    19                 pre = pre.next;
    20             }else{
    21                 return null;
    22             }
    23         }
    24         while(pre.next != null){
    25             pre = pre.next;
    26             last = last.next;
    27         }
    28         return last;
    29 
    30     }
    31 }
  • 相关阅读:
    Solution -「LOCAL」客星璀璨之夜
    Solution -「LOCAL」割海成路之日
    aaa
    wendang
    OSS架构
    MySQL事务
    1292分数和
    printf使用方法 (c++)
    1024与圆相关的计算
    Js 之echarts世界地图与汉化
  • 原文地址:https://www.cnblogs.com/10081-AA/p/10638867.html
Copyright © 2020-2023  润新知