題目
跟上一篇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;
}
}