这个题是考察链表的遍历查找 、插入和删除 非常基础的操作
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 + " "));
}
}

京公网安备 11010502036488号