34 N-ary Tree Preorder Traversal

题目

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

分析

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

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

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

解答

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;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章