Leetcode Java N-ary Tree Preorder Traversal
업데이트:
문제
코드
class Solution {
public List<Integer> preorder(Node root) {
List<Integer> result = new ArrayList<>();
this.dfs(root, result);
return result;
}
private void dfs(Node root, List<Integer> list) {
if (root != null) {
list.add(root.val);
if (root.children != null) {
for (Node node : root.children) {
this.dfs(node, list);
}
}
}
}
}
결과
설명
-
root를 preorder 순으로 val 값들을 반환하는 문제이다.
-
result는 preorder 순으로 val 값을 넣을 변수로, ArrayList로 초기화한다.
-
4번에서 정의한 dfs(Node root, List
list)에 result를 넣어 수행한다. - root를 preorder 순으로 val 값을 넣기 위한 dfs(Node root, List
list)를 정의한다 - root가 null이 아닌 경우 아래를 수행한다.
- list의 root의 val 값을 먼저 넣어준다.
- root의 children이 null이 아닌 경우, children을 순차적으로 root 자리에 넣어 재귀 호출을 한다.
- root를 preorder 순으로 val 값들을 넣은 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기