LeetCode:N叉树的层次遍历【429】
LeetCode:N叉树的层次遍历【429】
题目描述
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
例如,给定一个 3叉树
:
返回其层序遍历:
[ [1], [3,2,4], [5,6] ]
说明:
- 树的深度不会超过
1000
。 - 树的节点总数不会超过
5000
。
题目分析
使用队列处理。
Java题解
public List<List<Integer>> levelOrder(Node root) { // N叉树的遍历 List<List<Integer>> retList = new ArrayList<>(); if (root == null) return retList; Queue<Node> nodeQueue = new LinkedList<>(); nodeQueue.offer(root); while(!nodeQueue.isEmpty()) { List<Integer> layerNodeList = new ArrayList<>(); int curLayerSize = nodeQueue.size(); for (int i = 0; i < curLayerSize; i++) { Node cur = nodeQueue.poll(); layerNodeList.add(cur.val); if (cur.children != null) { for (Node tmp : cur.children) { nodeQueue.offer(tmp); } } } retList.add(layerNodeList); } return retList; }