32.2 把二叉树打印成多行

NowCoder

题目描述

和上题几乎一样。

解题思路

  1. ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) {
  2. ArrayList<ArrayList<Integer>> ret = new ArrayList<>();
  3. Queue<TreeNode> queue = new LinkedList<>();
  4. queue.add(pRoot);
  5. while (!queue.isEmpty()) {
  6. ArrayList<Integer> list = new ArrayList<>();
  7. int cnt = queue.size();
  8. while (cnt-- > 0) {
  9. TreeNode node = queue.poll();
  10. if (node == null)
  11. continue;
  12. list.add(node.val);
  13. queue.add(node.left);
  14. queue.add(node.right);
  15. }
  16. if (list.size() != 0)
  17. ret.add(list);
  18. }
  19. return ret;
  20. }

32.2 把二叉树打印成多行 - 图1