import java.util.*; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { //记录链表需要添加节点的数量 int nums = sc.nextInt(); //创建头节点(对象) Node head = new Node(sc.nextInt()); //创建单链表linkNode并初始化头节点 SingleLinkedList linkNode=new SingleLinkedList(head); //循环一个录入两个整数 //此处nums-1可以理解为: //(nums-1)*2/2,(nums-1)就是除了头节点还有nums-1个节点, for (int i = 0; i < (nums-1); i++) { Node node1 = new Node(sc.nextInt()); Node node2 = new Node(sc.nextInt()); linkNode.add(node1,node2); } Node node = new Node(sc.nextInt()); linkNode.del(node); linkNode.list(); } } } //创建链表类,链表的功能包括添加节点,删除节点和显示链表 class SingleLinkedList{ private Node head; //构造方法,在创建节点对象时初始化头节点的值 public SingleLinkedList(Node head) { this.head=head; } //添加节点 public void add(Node node1,Node node2) { Node curNode=head; while (true) { if (curNode == null) { break; } if (node2.val == curNode.val) { node1.next=curNode.next; curNode.next=node1; break; } curNode=curNode.next; } } //删除节点 public void del(Node node) { Node curNode=head; while (true) { if (curNode.next == null) { break; } if (node.val == head.val) { curNode=curNode.next; head=curNode; break; } if (node.val == curNode.next.val) { curNode.next=curNode.next.next; break; } curNode=curNode.next; } } //显示链表 public void list() { Node curNode=head; while (true) { if (head == null) { return; } if (curNode == null) { break; } //在Node节点类中已经重写toString方法,此处直接打印节点即可 System.out.print(curNode); curNode=curNode.next; } } } //创建节点类 class Node{ int val; Node next; public Node() { } //构造方法,创建Node对象时可以初始化节点的val值 public Node(int val) { this.val=val; } @Override public String toString() { return val+" "; } }