这个题是考察链表的遍历查找 、插入和删除 非常基础的操作
Java有现成的链表LinkedList 这里直接用了 懒得写了
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int head = in.nextInt(); LinkedList<Integer> linkedList = new LinkedList<>(); linkedList.add(head); for (int i = 0; i < n - 1; i++) { int tailNUm = in.nextInt(); int headNum = in.nextInt(); // indexOf 获得该值下标 这个下标与数组的下标只是表象相同 实际是 // for(0 -> index) p = p.next // add()加1的原因是默认是插到前面的 题目要求插到后面 linkedList.add(linkedList.indexOf(headNum) + 1, tailNUm); } // 因为remove有两个重载方法: // remove(Object o) 和 remove(int index) // 我们需要的是 remove(Object o) 所以要把int装箱为Integer linkedList.remove(Integer.valueOf(in.nextInt())); linkedList.forEach(x -> System.out.print(x + " ")); } }