剑指 Offer 32 - II. 从上到下打印二叉树 II
难度简单64
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
例如:
给定二叉树: [3,9,20,null,null,15,7],
3/ \9 20/ \15 7
返回其层次遍历结果:
[[3],[9,20],[15,7]]
提示:
-
Solution
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/class Solution {public List<List<Integer>> levelOrder(TreeNode root) {Queue<TreeNode> queue = new LinkedList<>();List<List<Integer>> res = new ArrayList<>();int cur = 0; // 当前层次元素的个数int next = 0; // 统计下一层元素的个数if ( root != null) {queue.offer(root);cur ++;}List<Integer> temp = new ArrayList<>();while (!queue.isEmpty()){TreeNode node = queue.poll();temp.add(node.val);cur --;if (node.left != null){queue.offer(node.left);next ++;}if (node.right != null){queue.offer(node.right);next ++;}if (cur == 0){res.add(temp);temp = new ArrayList<>();cur = next;next = 0;}}return res;}}
