
输入: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null ,null,14]
输出: [[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public List<List<Integer>> levelOrder(Node root) {
List<List<Integer>> ans = new LinkedList<>();
if(root==null) return ans;
ans.add(Arrays.asList(root.val));
Queue<Node>q = new LinkedList<>();
q.offer(root);
int counter ;
while(!q.isEmpty())
{
counter = q.size();
LinkedList<Integer> level = new LinkedList<>();
while(counter-->0)
{
Node n = q.poll();
for(Node child:n.children)
{
level.add(child.val);
q.add(child);
}
}
if(!level.isEmpty()) ans.add(level);
}
return ans;
}
}
本文介绍了一种处理树形结构数据的方法,通过层次遍历来获取每一层的节点值,并将其整理为列表形式。该算法首先将根节点的值加入结果列表,然后使用队列进行广度优先搜索,直到队列为空,最终返回包含各层级节点值的列表。
1806

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



