|
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 |
| - List<Integer> list; |
12 |
| - public List<Integer> rightSideView(TreeNode root) { |
13 |
| - list = new ArrayList<>(); |
14 |
| - if (root == null) { |
15 |
| - return list; |
16 |
| - } |
17 |
| - |
18 |
| - helper(root); |
19 |
| - return list; |
| 17 | + public List<Integer> rightSideView(TreeNode root) { |
| 18 | + if (root == null) { |
| 19 | + return new ArrayList<>(); |
20 | 20 | }
|
21 |
| - |
22 |
| - private void helper(TreeNode root) { |
23 |
| - Queue<TreeNode> queue = new LinkedList<>(); |
24 |
| - queue.add(root); |
25 |
| - |
26 |
| - while (!queue.isEmpty()) { |
27 |
| - int size = queue.size(); |
28 |
| - |
29 |
| - for (int i=1; i<=size; i++) { |
30 |
| - TreeNode popped = queue.remove(); |
31 |
| - if (popped.left != null) { |
32 |
| - queue.add(popped.left); |
33 |
| - } |
34 |
| - if (popped.right != null) { |
35 |
| - queue.add(popped.right); |
36 |
| - } |
37 |
| - |
38 |
| - if (i == size) { |
39 |
| - list.add(popped.val); |
40 |
| - } |
41 |
| - } |
| 21 | + List<Integer> list = new ArrayList<>(); |
| 22 | + Queue<TreeNode> queue = new LinkedList<>(); |
| 23 | + queue.add(root); |
| 24 | + while (!queue.isEmpty()) { |
| 25 | + int size = queue.size(); |
| 26 | + TreeNode rightMost = null; |
| 27 | + while (size-- > 0) { |
| 28 | + TreeNode removed = queue.remove(); |
| 29 | + if (rightMost == null) { |
| 30 | + rightMost = removed; |
| 31 | + } |
| 32 | + if (removed.right != null) { |
| 33 | + queue.add(removed.right); |
42 | 34 | }
|
| 35 | + if (removed.left != null) { |
| 36 | + queue.add(removed.left); |
| 37 | + } |
| 38 | + } |
| 39 | + list.add(rightMost.val); |
43 | 40 | }
|
| 41 | + return list; |
| 42 | + } |
44 | 43 | }
|
0 commit comments