public static void main(String[] args) throws java.lang.Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Tree tree = new Tree(); int n = Integer.parseInt(br.readLine()); int nn = n - 1; TreeNode[] treeNodes = new TreeNode[n]; int i = 0; while (n-- > 0) { String[] strs = br.readLine().split(" "); int r = Integer.parseInt(strs[1]); int n1 = Integer.parseInt(strs[0]); treeNodes[i] = new TreeNode(n1, r); i = i + 1; } boolean[] x = new boolean[nn + 1]; while (nn-- > 0) { String[] strs = br.readLine().split(" "); int s = Integer.parseInt(strs[0]); int t = Integer.parseInt(strs[1]); if (!x[s]) { tree.insert(treeNodes[s]); x[s] = true; } if (!x[t]) { tree.insert(treeNodes[t]); x[t] = true; } } tree.levelOrder(tree.root); }