LeetCode:N叉樹的層次遍歷【429】
阿新 • • 發佈:2018-11-13
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; }