链表中倒数第k个结点

感情迁移 提交于 2020-03-31 02:58:23

题目描述

输入一个链表,输出该链表中倒数第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;
    }
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!