199. Binary Tree Right Side View

https://leetcode.com/problems/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] Example 2: Input: root = [1,null,3] Output: [1,3] Example 3: Input: root = [] Output: []

Constraints:

The number of nodes in the tree is in the range [0, 100]. 	
-100 <= Node.val <= 100

  • code
class Solution {
    public List<Integer> rightSideView(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        LinkedList<TreeNode> level = new LinkedList<>();
        if (root != null) level.offer(root);
        while (!level.isEmpty()){
            res.add(level.peekLast().val);
            int level_size = level.size();
            for (int i = 0; i < level_size; i++){
                TreeNode cur = level.pollFirst();
                if (cur.left != null) level.offerLast(cur.left);
                if (cur.right != null) level.offerLast(cur.right);
            }
        }
        return res;
    }
}