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

法一:递归

  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> res = new ArrayList<Integer>();
  16. public List<Integer> preorder(Node root) {
  17. helper(root);
  18. return res;
  19. }
  20. public void helper(Node root){
  21. if (root==null) return;
  22. res.add(root.val);
  23. for (int i = 0; i <root.children.size() ; i++) {
  24. helper(root.children.get(i));
  25. }
  26. }
  27. }

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