题目
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
例如,给定一个 3叉树 :

返回其层序遍历:
[
[1],
[3,2,4],
[5,6]
]
说明:
- 树的深度不会超过 1000。
- 树的节点总数不会超过 5000。
代码模板:
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val,List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public List<List<Integer>> levelOrder(Node root) {
}
}
分析
这里的递归的话,确认一个level来作为list.get(level)来操作。循环root.children,level加一去递归填充。
解答
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val,List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public List<List<Integer>> levelOrder(Node root) {
List<List<Integer>> result = new ArrayList<>();
if(root == null){
return result;
}
levelFill(root,0,result);
return result;
}
public void levelFill(Node root, int level, List<List<Integer>> result){
if(result.size() < level + 1)
result.add(new ArrayList<Integer>());
result.get(level).add(root.val);
for (Node n : root.children) {
levelFill(n, level + 1, result);
}
}
}

博客围绕给定的N叉树节点值层序遍历题目展开。说明了树的深度和节点总数限制,给出代码模板。分析解题思路,采用递归方式,确认一个level操作,循环root.children并使level加一递归填充。
327

被折叠的 条评论
为什么被折叠?



