589-N叉树的前序遍历

Posted dloading

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了589-N叉树的前序遍历相关的知识,希望对你有一定的参考价值。

N阶二叉树:
class Tree {
        public int val;
        public List<Tree> children;

        public Tree() {
        }

        public Tree(int _val, List<Tree> _children) {
            val = _val;
            children = _children;
        }
    }


迭代法遍历:

 public List<Integer> preorder(Tree root) {
        List<Integer> list=new ArrayList<Integer>();
        if(root==null)
            return list;
        Stack<Tree> stack=new Stack<Tree>();
        stack.add(root);
        while (!stack.isEmpty()){
            Tree tree=stack.pop();
            list.add(tree.val);
            if (tree.children!=null)
            {
                int n=tree.children.size();
                for (int i=n-1;i>=0;i--){
                    stack.add(tree.children.get(i));
                }
            }
        }
        return list;
    }
}

递归法遍历:

    List<Integer> list = new ArrayList<>();

    public List<Integer> preorder(Tree root) {
        if (root == null) {
            return list;
        } else {
            list.add(root.val);
            for (int i = 0; i < root.children.size(); i++) {
                preorder(root.children.get(i));
            }
            return list;
        }
    }
}

 

以上是关于589-N叉树的前序遍历的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode Algorithm 589. N 叉树的前序遍历

589. N叉树的前序遍历

LeetCode 589. N叉树的前序遍历(N-ary Tree Preorder Traversal)

LeetCode-589. N叉树的前序遍历

589-N叉树的前序遍历

589. N叉树的前序遍历