链表中倒数第k个结点

题目描述

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

可以用两个指针实现,first和second均指向头指针,将second指针后移动k-1位,然后再将两个指针同时往后

移动,直到second的next指向空。唯一需要注意的就是输入的k必须为正数,且不能超过链表的长度。

public class Solution {
    public ListNode FindKthToTail(ListNode head,int k) {
       if(k<=0||head==null){
            return null;
        }
        
        ListNode first=head;
        ListNode second=head;
        
        for(int i=0;i<k-1;i++){
            if(second.next==null){
                return null;
            }else{
                second=second.next;
            }    
        }
        
        while(second.next!=null){
            first=first.next;
            second=second.next;
        }
        
        return first;
    }
}
posted @ 2016-02-10 10:49  黄大仙爱编程  阅读(105)  评论(0编辑  收藏  举报