1533. N叉树的层序遍历
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
例如,给定一个 3叉树 :
返回其层序遍历:
[
[1],
[3,2,4],
[5,6]
]
样例
样例 1:
输入:{1,3,2,4#2#3,5,6#4#5#6}
输出:[[1],[3,2,4],[5,6]]
解释:如上图
样例 2:
输入:{1,3,2#2#3}
输出:[[1],[3,2]]
解释:
1
/ \
3 2
注意事项
-
The depth of the tree is at most 1000.
-
The total number of nodes is at most 5000.图模型说明:
public class Solution {
public List<List<Integer>> levelOrder(ArrayList<DirectedGraphNode> nodes) {
List<List<Integer>> result = new ArrayList<>();
if (nodes == null || nodes.size() == 0) {
return result;
}
Queue<DirectedGraphNode> q = new LinkedList<>();
q.offer(nodes.get(0));
while (!q.isEmpty()) {
int size = q.size();
List<Integer> level = new ArrayList<>();
for (int i = 0; i < size; i++) {
DirectedGraphNode node = q.poll();
// label就是序号
level.add(node.label);
// neighbors是孩子
for (DirectedGraphNode childNode : node.neighbors) {
q.offer(childNode);
}
}
result.add(level);
}
return result;
}
}