34 N-ary Tree Preorder Traversal

2021-08-18 16:15:18 浏览数 (1)

题目

跟上一篇N叉树后序遍历基本一致,区别就在于本题要求使用前序遍历。

分析

还是老办法,只需要利用遍历“最小元”的思想进行递归即可。

后序遍历: n叉树后序遍历的最小元:先遍历其他节点-->再遍历根节点 从题意可知,根节点是root,其他节点是root.children中的节点。 因此算法就是,先递归遍历root.children的所有节点,再遍历根节点

前序遍历:先遍历根节点--> 再遍历其他节点

解答

代码语言:javascript复制
class Solution {
    List<Integer> list = new ArrayList();
    public List<Integer> preorder(Node root) {
        if(root == null)
            return list;
        list.add(root.val);
        for(Node n:root.children){
            preorder(n);  
        }
        return list;
    }
}

0 人点赞