题目来源:
https://leetcode-cn.com/problems/n-ary-tree-postorder-traversal/
题目描述:
递归法:
class Solution {
List<Integer> list = new ArrayList();
public List<Integer> postorder(Node root) {
if (root != null) {
for (Node node : root.children) {
postorder(node);
}
list.add(root.val);
}
return list;
}
}
迭代法:
class Solution {
public List<Integer> postorder(Node root) {
if(root == null)return null;
List<Integer> list = new ArrayList<>();
Stack<Node> stack = new Stack<>();
stack.push(root);
while (!stack.isEmpty()){
root = stack.pop();
list.add(root.val);
for(Node child : root.children)
stack.push(child);
}
Collections.reverse(list);
return list;
}
}