<aside> 💛
시간 제한 : 1초, 난이도 : 실버2, 백준 : 11725번
</aside>
import java.util.ArrayList;
import java.util.Scanner;
public class Practice67 {
static int N;
static boolean[] visited;
static ArrayList<Integer> tree[];
static int answer[];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
visited = new boolean[N + 1];
tree = new ArrayList[N + 1];
answer = new int[N + 1];
for(int i = 0; i < tree.length; i++) {
tree[i] = new ArrayList<>();
}
for(int i = 1; i < N; i++) {
int n1 = sc.nextInt();
int n2 = sc.nextInt();
tree[n1].add(n2);
tree[n2].add(n1);
}
DFS(1);
for(int i = 2; i <= N; i++) {
System.out.println(answer[i]);
}
sc.close();
}
static void DFS(int number) {
visited[number] = true;
for(int i : tree[number]) {
if(!visited[i]) {
answer[i] = number;
DFS(i);
}
}
}
}