|
4 | 4 | * int val;
|
5 | 5 | * TreeNode left;
|
6 | 6 | * TreeNode right;
|
7 |
| - * TreeNode(int x) { val = x; } |
| 7 | + * TreeNode() {} |
| 8 | + * TreeNode(int val) { this.val = val; } |
| 9 | + * TreeNode(int val, TreeNode left, TreeNode right) { |
| 10 | + * this.val = val; |
| 11 | + * this.left = left; |
| 12 | + * this.right = right; |
| 13 | + * } |
8 | 14 | * }
|
9 | 15 | */
|
10 | 16 | class Solution {
|
11 |
| - public List<Integer> largestValues(TreeNode root) { |
12 |
| - List<Integer> list = new ArrayList<>(); |
13 |
| - if (root == null) { |
14 |
| - return list; |
15 |
| - } |
16 |
| - Queue<TreeNode> queue = new LinkedList<>(); |
17 |
| - queue.add(root); |
18 |
| - while (!queue.isEmpty()) { |
19 |
| - int maxVal = Integer.MIN_VALUE; |
20 |
| - int size = queue.size(); |
21 |
| - while (size-- > 0) { |
22 |
| - TreeNode removed = queue.remove(); |
23 |
| - maxVal = Math.max(maxVal, removed.val); |
24 |
| - if (removed.left != null) { |
25 |
| - queue.add(removed.left); |
| 17 | + public List<Integer> largestValues(TreeNode root) { |
| 18 | + if (root == null) { |
| 19 | + return new ArrayList<>(); |
26 | 20 | }
|
27 |
| - if (removed.right != null) { |
28 |
| - queue.add(removed.right); |
| 21 | + List<Integer> result = new ArrayList<>(); |
| 22 | + Queue<TreeNode> queue = new LinkedList<>(); |
| 23 | + queue.add(root); |
| 24 | + while (!queue.isEmpty()) { |
| 25 | + int size = queue.size(); |
| 26 | + int maxValue = queue.peek().val; |
| 27 | + while (size-- > 0) { |
| 28 | + TreeNode removed = queue.remove(); |
| 29 | + maxValue = Math.max(maxValue, removed.val); |
| 30 | + if (removed.left != null) { |
| 31 | + queue.add(removed.left); |
| 32 | + } |
| 33 | + if (removed.right != null) { |
| 34 | + queue.add(removed.right); |
| 35 | + } |
| 36 | + } |
| 37 | + result.add(maxValue); |
29 | 38 | }
|
30 |
| - } |
31 |
| - list.add(maxVal); |
| 39 | + return result; |
32 | 40 | }
|
33 |
| - return list; |
34 |
| - } |
35 | 41 | }
|
0 commit comments