题解 | #链表中倒数第k个结点#

链表中倒数第k个结点

http://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a

    public ListNode FindKthToTail(ListNode head,int k) {
        if(head == null || k <= 0 ){
            return null;
        }
        //快慢指针
        ListNode fast = head;
        ListNode slow = head;
        //倒数k,离最后一个节点k-1步,所以让fast先跑k-1步
        for(int i =0; i<k-1; i++){
            fast = fast.next;
            //这里判断是否空指针异常,相当于 k>size 了!(size是链表长度)
             if(fast == null){
                  return null;
             }
        }
        //fast跑完之后,fast和slow一步一步走
        while(fast.next != null){
            fast = fast.next;
            slow = slow.next;
        }      
        return slow;
    }
}
全部评论

相关推荐

投递长鑫存储等公司7个岗位
点赞 评论 收藏
分享
昨天 15:12
门头沟学院 运营
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务