import java.util.Scanner; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int numberOfNodes = scanner.nextInt(); Node firstNode = new Node(scanner.nextInt(), null); int curE = 0; int preE = 0; int count = 0; for (int i = 0; i < (numberOfNodes - 1); i++) { curE = scanner.nextInt(); preE = scanner.nextInt(); Node newNode = new Node(curE, null); if (count == 0) { // System.out.println(newNode+"即将插入_"+i); // System.out.println(newNode+"插入成功"); count++; firstNode.setNext(newNode); } else { // System.out.println(newNode+"即将插入_"+i); Node temp = firstNode; while (temp != null) { if (temp.getE() == preE) { newNode.setNext(temp.getNext()); temp.setNext(newNode); /*System.out.println("两值相同进行插入 "+temp.getE()+" "+preE+" while循环的结束条件"+temp.getNext()); System.out.println(newNode+"插入成功"+" "+i);*/ break; } temp = temp.getNext(); } } } //记录要删除的节点 int k = scanner.nextInt(); // System.out.println("要删除的节点" + k); Node temp1 = firstNode; Node oldNode = firstNode; while (temp1 != null) { // System.out.println(temp1.getE()); if (temp1.getE() == k) { /*System.out.println(oldNode); System.out.println(temp1);*/ oldNode.setNext(temp1.getNext()); temp1.setNext(null); } oldNode = temp1; temp1 = temp1.getNext(); } //遍历输出链表 Node temp2 = firstNode; while (temp2 != null) { System.out.print(temp2.getE() + " "); temp2 = temp2.getNext(); } } } class Node { private int e; private Node next; public Node(int e, Node node) { this.e = e; this.next = node; } public int getE() { return e; } public void setE(int e) { this.e = e; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } @Override public String toString() { return "Node{" + "e=" + e + ", next=" + next + '}'; } }