Binary Tree Right Side View

 Given the root of a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.


 


Example 1:


Input: root = [1,2,3,null,5,null,4]


Output: [1,3,4]


Explanation:



Example 2:


Input: root = [1,2,3,4,null,null,null,5]


Output: [1,3,4,5]


Explanation:





Example 3:


Input: root = [1,null,3]


Output: [1,3]


Example 4


Input: root = []


Output: []


import java.util.*;

class Solution {
    public ArrayList<Integer> rightView(Node root) {
        ArrayList<Integer> result = new ArrayList<>();
        if (root == null) return result;

        Queue<Node> q = new LinkedList<>();
        q.offer(root);

        while (!q.isEmpty()) {
            int size = q.size();

            for (int i = 0; i < size; i++) {
                Node curr = q.poll();

                // ✅ Last node in current level is the right view
                if (i == size - 1) {
                    result.add(curr.data);
                }

                // Add children for next level
                if (curr.left != null) q.offer(curr.left);
                if (curr.right != null) q.offer(curr.right);
            }
        }

        return result;
    }
}


 

Comments

Popular posts from this blog

Two Sum II - Input Array Is Sorted

Comparable Vs. Comparator in Java

Increasing Triplet Subsequence