
난이도: ★☆☆☆☆ • solved on: 2025-12-05

자료구조
알고리즘/기법
핵심 키워드
참고
- In-order Traversal : left → root → right
- Post-order Traversal : left → right → root
Traversal 출력 순서 루트 출력 시점 주요 특징 Pre-order root → left → right 맨 처음 트리 복원, 구조 출력 In-order left → root → right 중간 BST 정렬 결과 출력 Post-order left → right → root 맨 마지막 서브트리 작업 후 root 처리
- 문제 분해
- Preorder 규칙: (1) root 출력 → (2) 왼쪽 재귀 → (3) 오른쪽 재귀
- null 이면 더 내려갈 곳이 없으므로 return 한다.
핵심 로직 흐름
preOrder(root): if root is null: return (base case) print root.data + " " preOrder(root.left) preOrder(root.right)예외 처리
- root가 null일 수 있는 테스트가 존재하므로 null 체크 필요
- 반드시 print(ln 아님)로 출력해야 HackerRank의 기대 출력 형식과 일치함
public static void preOrder(Node root) {
if (root == null) {
return;
}
System.out.print(root.data + " ");
preOrder(root.left);
preOrder(root.right);
}
System.out.println()을 사용해 출력이 줄바꿈 형태로 나와 문제 형식과 맞지 않았다.Iteration, Memoization, Tail Recursion과 같은 최적화가 불가능하다.