一、题目内容

image.png

二、题解

解法1:

思路

简单层序遍历,使用队列

代码

  1. /**
  2. * Definition for a binary tree node.
  3. * public class TreeNode {
  4. * int val;
  5. * TreeNode left;
  6. * TreeNode right;
  7. * TreeNode(int x) { val = x; }
  8. * }
  9. */
  10. class Solution {
  11. public List<List<Integer>> levelOrder(TreeNode root) {
  12. if (root == null) {
  13. return new ArrayList<List<Integer>>();
  14. }
  15. Queue<TreeNode> queue = new LinkedList<TreeNode>();
  16. List<List<Integer>> result = new ArrayList<List<Integer>>();
  17. queue.offer(root);
  18. while (!queue.isEmpty()) {
  19. List<Integer> temp = new ArrayList<Integer>();
  20. int size = queue.size();
  21. for (int i = 0; i < size; i++) {
  22. TreeNode head = queue.poll();
  23. temp.add(head.val);
  24. if (head.left != null) {
  25. queue.offer(head.left);
  26. }
  27. if (head.right != null) {
  28. queue.offer(head.right);
  29. }
  30. }
  31. result.add(temp);
  32. }
  33. return result;
  34. }
  35. }