전처리
static class Edge
{
int next_node;
Edge next_edge;
Edge (int next_node, Edge next_edge)
{
this.next_node = next_node;
this.next_edge = next_edge;
}
}
메인
Edge[] graph = new Edge[N+1];
for (int i=1; i<=N-1; i++)
{
st = new StringTokenizer(input.readLine());
int u = Integer.parseInt(st.nextToken());
int v = Integer.parseInt(st.nextToken());
graph[u] = new Edge(v, graph[u]);
graph[v] = new Edge(u, graph[v]);
}
순회
for (Edge edge = graph[current_node]; edge != null; edge = edge.next_edge)
{
int next_node = edge.next_node;
}