题解 | #输出单向链表中倒数第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;
    }
}



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

相关推荐

牛客101244697号:电竞协会感觉不如不写
点赞 评论 收藏
分享
评论
28
1
分享
牛客网
牛客企业服务