参考连接: 小王子单链表 - 蓝桥云课 (lanqiao.cn) 【<---这是个连接可以点进去】
小王子单链表
题目描述
小王子有一天迷上了排队的游戏,桌子上有标号为 1-101−10 的 1010 个玩具,现在小王子将他们排成一列,可小王子还是太小了,他不确定他到底想把那个玩具摆在哪里,直到最后才能排成一条直线,求玩具的编号。已知他排了 MM 次,每次都是选取标号为 XX 个放到最前面,求每次排完后玩具的编号序列。
要求一:采用单链表解决
输入描述
第一行是一个整数 MM,表示小王子排玩具的次数。
随后 MM 行每行包含一个整数 XX,表示小王子要把编号为 XX 的玩具放在最前面。
输出描述
共 MM 行,第 ii 行输出小王子第 ii 次排完序后玩具的编号序列。
输入输出样例示例 1
输入
Plain Text
5
3
2
3
4
2输出
Plain Text
3 1 2 4 5 6 7 8 9 10
2 3 1 4 5 6 7 8 9 10
3 2 1 4 5 6 7 8 9 10
4 3 2 1 5 6 7 8 9 10
2 4 3 1 5 6 7 8 9 10运行限制
最大运行时间:1s
最大运行内存: 128M
5
3
2
3
4
2
3 1 2 4 5 6 7 8 9 10
2 3 1 4 5 6 7 8 9 10
3 2 1 4 5 6 7 8 9 10
4 3 2 1 5 6 7 8 9 10
2 4 3 1 5 6 7 8 9 10
- package week3.exam8;
-
- import java.util.ArrayList;
- import java.util.LinkedList;
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- ArrayList
arr = new ArrayList<>(); - LinkedList
list = new LinkedList<>(); - for (int i = 1; i < 11; i++)
- list.add(i+"");
-
- Scanner sc = new Scanner(System.in);
- int N = sc.nextInt();
-
- for (int i = 0; i < N; i++) {
- int n = sc.nextInt();
- arr.add(n);
- }
- sc.close();
-
-
- for (int i : arr) {
- list.remove(i+"");
- list.addFirst(i+"");
- System.out.println(list.toString().substring(1, list.toString().length() - 1).replace(",", ""));
- }
- }
- }