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

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

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

构造单链表,使用头插法,解决问题;

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            int num = scan.nextInt();
            ListNode header = new ListNode();
            for (int i=0; i< num;i++) {
                int value = scan.nextInt();
                ListNode node = new ListNode(value, header.next);
                header.next = node;
            }
            int target = scan.nextInt();
            for (int i=0; i<target; i++) {
                header = header.next;
            }
            System.out.println(header.value);
        }
        
    }
}


class ListNode{
    int value;
    ListNode next;
    public ListNode(){
        
    }
    public ListNode(int value, ListNode next){
        this.value = value;
        this.next = next;
    }
}



全部评论
这题正确的解法是,在遍历到整数第k个时标记头节点,然后标记点和遍历点同时向后走,此时标记点和遍历点永远距离k,当遍历完成后标记点走到倒数第k,直接输出。时间复杂度O(n)
9 回复 分享
发布于 2022-07-29 00:19
要求“正序构建链表”,你逆序构建
9 回复 分享
发布于 2022-04-14 22:37
哥你这是逆序..
4 回复 分享
发布于 2022-04-23 17:19
人家要求正序构建,你逆序构建,这题0分啊
1 回复 分享
发布于 2022-08-28 01:07 江苏
头插法确实是逆序排,不过如果头插法掌握了,用尾插法肯定能做出来,所以这个思路没问题的
1 回复 分享
发布于 2022-07-03 18:09
貌似不能多组输入
点赞 回复 分享
发布于 2022-11-22 17:32 广东
你这都不符合要求啊
点赞 回复 分享
发布于 2022-09-03 14:05 四川
能请教下吗,为什么照着写了无法完成编译
点赞 回复 分享
发布于 2022-06-03 16:00
为什么要搞的这么复杂。
点赞 回复 分享
发布于 2022-03-30 21:01

相关推荐

门口唉提是地铁杀:之前b站被一个游戏demo深深的吸引了。看up主页发现是个初创公司,而且还在招人,也是一天60。二面的时候要我做一个登录验证和传输文件两个微服务,做完要我推到github仓库,还要我加上jaeger和一堆运维工具做性能测试并且面试的时候投屏演示。我傻乎乎的做完以后人家跟我说一句现在暂时不招人,1分钱没拿到全是白干
你的秋招第一场笔试是哪家
点赞 评论 收藏
分享
水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
评论
28
1
分享

创作者周榜

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