링크
백준 1991 트리순회
재귀를 통해 트리를 순회하며 pre, in, post를 구분해주면 쉽게 풀 수 있다.
import sys; input = sys.stdin.readline
def order(p):
pre_in_post_order[0] += p
if adj[p][0] != '.':
order(adj[p][0])
pre_in_post_order[1] += p
if adj[p][1] != '.':
order(adj[p][1])
pre_in_post_order[2] += p
N = int(input())
adj = {}
pre_in_post_order = ['', '', '']
for _ in range(N):
p, lc, rc = input().split()
adj[p] = [lc, rc]
order('A')
print('\n'.join(pre_in_post_order))