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

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

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

题解

此题主要考查对链表指针的理解,一般链表有三类节点:表头、表身、表尾;

1.表头的值为空(-1),nextNode 指针指向下一个节点。

2.表身的值为输入的值,nextNode 指针指向下一个节点。

3.表尾的值为输入值,nextNode指针为null

例如:输入五个节点,节点值分别为:4,5,6,7,8;链表如下。

alt

代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // 1.输入内容
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt(); // 链表长度
            ListNode headNode = new ListNode(-1); // 定义表头
            ListNode temp = headNode;
            for (int i = 0; i < n; i++) {
                int value = sc.nextInt();
                temp.nextNode = new ListNode(value);
                temp = temp.nextNode;
            }

            // 2.遍历倒数第k节点的指针
            int k = sc.nextInt();
            for (int i = 0; i < n - k + 1; i++) { // 链表总长 - 倒数位置k + 本身算起1 = n-k+1
                headNode = headNode.nextNode;
            }
            System.out.println(headNode.value);
        }
    }
}

class ListNode {
    Integer value;
    ListNode nextNode;

    // 有参构造函数
    public ListNode(Integer value) {
        this.value = value;
        this.nextNode = null;
    }
}
全部评论
题目说了 构建后要忘记链表长度
1 回复 分享
发布于 2023-05-14 17:15 陕西

相关推荐

美团 后端开发 总包n(15%是股票)
点赞 评论 收藏
分享
孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
评论
19
7
分享
牛客网
牛客企业服务