AlgoMaster Logo

Binary Tree Right Side View

tree=[1, 2, 3, null, 5, null, 4]
1public List<Integer> rightSideView(TreeNode root) {
2    List<Integer> result = new ArrayList<>();
3
4    if (root == null) {
5        return result;
6    }
7
8    Queue<TreeNode> queue = new LinkedList<>();
9    queue.offer(root);
10
11    while (!queue.isEmpty()) {
12        int levelSize = queue.size();
13        TreeNode rightmostNode = null;
14
15        for (int i = 0; i < levelSize; i++) {
16            TreeNode node = queue.poll();
17            rightmostNode = node;
18
19            if (node.left != null) {
20                queue.offer(node.left);
21            }
22            if (node.right != null) {
23                queue.offer(node.right);
24            }
25        }
26
27        result.add(rightmostNode.val);
28    }
29
30    return result;
31}
0 / 27
RR12354Level 0Level 1Level 2