199. Binary Tree Right Side View

Source
https://leetcode.com/problems/binary-tree-right-side-view/

Given 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:
Input: [1,2,3,null,5,null,4]
Output: [1, 3, 4]
Explanation:

   1            <---
 /   \
2     3         <---
 \     \
  5     4       <---
---
Intuition
At each level we want the rightmost node
Traverse the tree by level
Add elements left to right
Discard elements in order they are added
Last element at the level is part of the answer

Level order - BFS
---
Recursive
In order is reverse, first right child, then left
Use a nice trick .. ans.size() == level to add element on first dfs call at that level
---
Time - O(n)
Space - O(n)