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+" ";
}
}