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

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

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

import java.util.Scanner;

class ListNode {
    ListNode next;
    int val;

    public ListNode(int val) {
        this.val = val;
        this.next = null;
    }

}
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            int n = in.nextInt();
            ListNode head = new ListNode(-1);
            ListNode cur = head;
            for (int i = 0; i < n; i++) {
                ListNode node = new ListNode(in.nextInt());
                while (cur.next != null) {
                    cur = cur.next;
                }
                cur.next = node;
            }
            int k = in.nextInt();
            findKNodeFromTail(head.next, n, k);
        }

    }

    private static void findKNodeFromTail(ListNode node, int n, int k) {
        int left_k = n - k + 1;
        int i = 1;
        while (node != null) {
            if (i == left_k) {
                System.out.println(node.val);
            }
            node = node.next;
            i++;
        }
    }
}

假设一共是是n个节点构成的链表,找倒数第k个节点就是找顺数第n-k+1个节点,输出这个值即可。

需要注意的是,在构造单链表的时候当前节点要向后移动,保证是最后一个节点。

全部评论

相关推荐

07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
盖茨伯爵:一样兄弟,我从4月开始发到现在了,都三四百个了
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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