
문제 분석
n-ary 트리의 루트가 주어지면 선주문 순서로 방문 및 출력
선주문(선주문 흐름)이란 무엇입니까?
1. 루트 방문 후
2. 왼쪽 자식 노드를 반복적으로 방문
3. 그런 다음 돌아가서 올바른 하위 노드를 방문하십시오.
그런 다음 2-3단계를 반복합니다.
정답 예
public List<Integer> preorder(Node root) {
if (root == null) {
return new ArrayList<>();
}
List<Integer> output = new ArrayList<>();
recursive(root, output);
return output;
}
public void recursive(Node root, List<Integer> output) {
output.add(root.val);
if (root.children == null) {
return;
}
root.children.forEach(c -> recursive(c, output));
}
