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

image.png

层序遍历

  1. class Solution {
  2. public int[] levelOrder(TreeNode root) {
  3. if (root == null) return new int[0];
  4. Queue<TreeNode> queue = new LinkedList<>();
  5. queue.add(root);
  6. List<Integer> list = new ArrayList<>();
  7. while (!queue.isEmpty()) {
  8. for (int i = queue.size(); i > 0; i--) {
  9. TreeNode cur = queue.poll();
  10. list.add(cur.val);
  11. if (cur.left != null) queue.add(cur.left);
  12. if (cur.right != null) queue.add(cur.right);
  13. }
  14. }
  15. return list.stream().mapToInt(Integer::intValue).toArray();
  16. }
  17. }