给定一个 N 叉树,返回其节点值的后序遍历。
例如,给定一个 3叉树 :
590. N叉树的后序遍历(递归)1 - 图1
返回其后序遍历: [5,6,3,2,4,1].
说明: 递归法很简单,你可以使用迭代法完成此题吗?

法一:递归

  1. // Definition for a Node.
  2. class Node {
  3. public int val;
  4. public List<Node> children;
  5. public Node() {}
  6. public Node(int _val) {
  7. val = _val;
  8. }
  9. public Node(int _val, List<Node> _children) {
  10. val = _val;
  11. children = _children;
  12. }
  13. }
  14. class Solution {
  15. List<Integer> list = new ArrayList<>();
  16. public List<Integer> postorder(Node root) {
  17. if (root == null) return list;
  18. for(Node node: root.children) {
  19. postorder(node);
  20. }
  21. list.add(root.val);
  22. return list;
  23. }
  24. }

590. N叉树的后序遍历(递归)1 - 图2