题目:
Given an n-ary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
For example, given a 3-ary tree:
注:好像如果是正常的树,就是root.left 和 root.righ。如果是这种就是写个for循环用root.children遍历。
这里想了半天:如果需要用到新加一层arraylist()
if(level==res.size()){
res.add(new ArrayList());
}
Code:(个人比较喜欢递归
class Solution {
List<List<Integer>> res = new ArrayList<List<Integer>>();
public List<List<Integer>> levelOrder(Node root) {
bfs(root,0);
return res;
}
public void bfs(Node root, int level){
if(root==null)
return ;
if(level==res.size()){
res.add(new ArrayList());
}
res.get(level).add(root.val);
for(Node node : root.children)
bfs(node, level+1);
}
}