#+ANKI_DECK: study_deck_02 * TODO 0199. Binary Tree Right Side View :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0199. Binary Tree Right Side View][0199. Binary Tree Right Side View]] :END: 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:* [] *Constraints:* - The number of nodes in the tree is in the range ~[0, 100]~. - ~-100 <= Node.val <= 100~ ** TODO Approach Write your approach here. ** TODO Python #+begin_src python :lc-problem 199 :lc-lang python3 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def rightSideView(self, root: Optional[TreeNode]) -> List[int]: #+end_src ** TODO C++ #+begin_src cpp :lc-problem 199 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: vector rightSideView(TreeNode* root) { } }; #+end_src