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