题解 | #输出单向链表中倒数第k个结点#

输出单向链表中倒数第k个结点

http://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d

链表的倒数第k个节点一般采用快慢指针实现查询效率为n的方法。
插入采用尾插法,记录尾指针

import java.util.*;
public class Main{
    public static class ListNode{
        int val;
        ListNode next;
        ListNode(int val){
            this.val = val;
        }
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            int n = sc.nextInt();
            ListNode head = new ListNode(sc.nextInt());
            ListNode rear = head;
            for(int i = 1;i<n;i++){
                ListNode listNode = new ListNode(sc.nextInt());
                rear.next = listNode;
                rear = rear.next;
            }
            int k = sc.nextInt();
            if(k>n||k<1){
                System.out.println(0);
            }
            else{
                ListNode fast = head;
                ListNode slow = head;
                for(int i = 1;i<k;i++){
                    fast = fast.next;
                }
                while(fast.next!=null)
                {
                    fast = fast.next;
                    slow = slow.next;
                }
                 System.out.println(slow.val);
            }
        }
    }
}
全部评论

相关推荐

昨天 11:21
门头沟学院 Java
总包48.5w,意想不到的价格
无情咸鱼王的秋招日记之薛定谔的Offer:R
点赞 评论 收藏
分享
10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
评论
2
收藏
分享
牛客网
牛客企业服务