zoukankan      html  css  js  c++  java
  • [Java]剑指offer:链表中倒数第k个结点

    题目描述

    输入一个链表,输出该链表中倒数第k个结点。
    如果该链表长度小于k,请返回空。
    示例1

    输入

    {1,2,3,4,5},1 

    返回值

    {5}

    思路

    使用两个指针,快指针和慢指针。快指针先走k步。然后快慢指针一起走。当快指针到达尾部的时候,此时慢指针所指的结点则为倒数第k个结点。

     1 import java.util.*;
     2 
     3 /*
     4  * public class ListNode {
     5  *   int val;
     6  *   ListNode next = null;
     7  *   public ListNode(int val) {
     8  *     this.val = val;
     9  *   }
    10  * }
    11  */
    12 
    13 public class Solution {
    14     /**
    15      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    16      *
    17      * 
    18      * @param pHead ListNode类 
    19      * @param k int整型 
    20      * @return ListNode类
    21      */
    22     public ListNode FindKthToTail (ListNode pHead, int k) {
    23         // write code here
    24         if(pHead==null||k<=0){
    25             return null;
    26         }
    27         ListNode fast = pHead;
    28         while(k>1&&fast!=null){
    29             fast = fast.next;
    30             k--;
    31         }
    32         if(fast==null){
    33             return null;
    34         }
    35         ListNode low = pHead;
    36         while(fast.next!=null){
    37             fast = fast.next;
    38             low = low.next;
    39         }
    40         return low;
    41     }
    42 }
  • 相关阅读:
    (转)堆与堆排序
    Cantor的数表
    Sticks(poj 1011)
    Square(hdu 1511)
    Fire Net(hdu 1045)
    Lake Counting(poj 2386)
    Ants (POJ 1852)
    A + B Problem II 大数加法
    深入理解计算机系统第二版家庭作业2.66
    C++ 队列queque/deque
  • 原文地址:https://www.cnblogs.com/blzm742624643/p/14703543.html
Copyright © 2011-2022 走看看