Skip to content

Commit bdf370d

Browse files
committed
2022-05-30 update: added "Binary Tree Right Side View"
1 parent 69ab5f3 commit bdf370d

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.smlnskgmail.jaman.leetcodejava.medium;
2+
3+
import com.smlnskgmail.jaman.leetcodejava.support.TreeNode;
4+
5+
import java.util.*;
6+
7+
// https://leetcode.com/problems/binary-tree-right-side-view/
8+
public class BinaryTreeRightSideView {
9+
10+
private final TreeNode input;
11+
12+
public BinaryTreeRightSideView(TreeNode input) {
13+
this.input = input;
14+
}
15+
16+
public List<Integer> solution() {
17+
if (input == null) {
18+
return Collections.emptyList();
19+
}
20+
List<Integer> result = new ArrayList<>();
21+
Deque<TreeNode> deque = new LinkedList<>();
22+
deque.add(input);
23+
while (!deque.isEmpty()) {
24+
int size = deque.size();
25+
while (size != 0) {
26+
TreeNode node = deque.poll();
27+
if (node.left != null) {
28+
deque.addLast(node.left);
29+
}
30+
if (node.right != null) {
31+
deque.addLast(node.right);
32+
}
33+
if (size == 1) {
34+
result.add(node.val);
35+
}
36+
size--;
37+
}
38+
}
39+
return result;
40+
}
41+
42+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.smlnskgmail.jaman.leetcodejava.medium;
2+
3+
import com.smlnskgmail.jaman.leetcodejava.support.TreeNode;
4+
import org.junit.Test;
5+
6+
import java.util.List;
7+
8+
import static org.junit.Assert.assertEquals;
9+
10+
public class BinaryTreeRightSideViewTest {
11+
12+
@Test
13+
public void defaultTest() {
14+
assertEquals(
15+
List.of(1, 3, 4),
16+
new BinaryTreeRightSideView(
17+
new TreeNode(
18+
1,
19+
new TreeNode(
20+
2,
21+
null,
22+
new TreeNode(5)
23+
),
24+
new TreeNode(
25+
3,
26+
null,
27+
new TreeNode(4)
28+
)
29+
)
30+
).solution()
31+
);
32+
}
33+
34+
}

0 commit comments

Comments
 (0)