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