문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
n진 트리 root가 주어졌을 때, 노드 값의 후위 순회 결과를 반환해라.
#1
Input: root = [1, null, 3, 2, 4, null, 5, 6]
Output: [5, 6, 3, 2, 4, 1]
#2
Input: root = [1, null, 2, 3, 4, 5, null, null, 6, 7, null, 8, null, 9, 10, null, null, 11, null, 12, null, 13, null, null, 14]
Output: [2, 6, 14, 11, 7, 3, 12, 8, 4, 13, 9, 10, 5, 1]
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
}
*/
class Solution {
public List<Integer> postorder(Node root) {
if(root == null) return new ArrayList<>();
List<Integer> result = new ArrayList<>();
dfs(root, result);
return result;
}
private void dfs(Node node, List<Integer> result){
for(Node child : node.children){
dfs(child, result);
}
result.add(node.val);
}
}