剑指 Offer 32 - II. 从上到下打印二叉树 II

题目链接:
剑指 Offer 32 - II. 从上到下打印二叉树 II - 力扣(LeetCode) (leetcode-cn.com)

注意点:巧妙运用队列的size值来实现按层次遍历

代码及解析:

 1 public List<List<Integer>> levelOrder(TreeNode root) {
 2         if (root == null) {
 3             return null;
 4         }
 5         List<List<Integer>> lists = new ArrayList<>();
 6         Queue<TreeNode> q = new LinkedList<>();
 7         if (root != null) {
 8             q.add(root);    
 9         }
10         while (q.size() > 0) {
11             List<Integer> list = new ArrayList<>();
12             for (int i = q.size() - 1; i >= 0; i--) {//此处每次第一次进入循环时的q.size()就是该层的节点数
13                 TreeNode t = q.poll();
14                 list.add(t.val);
15                 if (t.left != null) {
16                     q.add(t.left);
17                 }
18                 if (t.right != null) {
19                     q.add(t.right);
20                 }
21             }
22             lists.add(list);
23         }
24         return lists;
25     }

 

posted @ 2022-04-14 21:36  jue1e0  阅读(26)  评论(0)    收藏  举报