AtCoder Beginner Contest 213 D - Takahashi Tour【Python】

https://atcoder.jp/contests/abc213/tasks/abc213_d

AtCoder ProblemsのRecommendationでDifficulty: 710、Solve Probability: 35%でした。
DFS(深さ優先探索)で解くことができました。

import sys
sys.setrecursionlimit(1000000)
N = int(input())

G = []
for _ in range(0, N):
    G.append([])

for _ in range(N-1):
    ai, bi = map(int, input().split())
    ai -= 1
    bi -= 1
    G[ai].append(bi)
    G[bi].append(ai)
# 番号が最も小さい都市へ移動するためにソートする
for i in range(N):
    G[i] = sorted(G[i])
  
visited = [False] * N
 
def dfs(i):
    print(i+1, end=' ')
    visited[i] = True
    for i2 in G[i]:
        if not visited[i2]:            
            dfs(i2)
            print(i+1, end=' ')
dfs(0)