Medium
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:
[0, 100]
.-100 <= Node.val <= 100
using System.Collections.Generic;
using LeetCodeNet.Com_github_leetcode;
/**
* Definition for a binary tree node.
* public class TreeNode {
* public int val;
* public TreeNode left;
* public TreeNode right;
* public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
public class Solution {
public IList<int> RightSideView(TreeNode root) {
var list = new List<int>();
Recurse(root, 0, list);
return list;
}
private void Recurse(TreeNode node, int level, List<int> list) {
if (node != null) {
if (list.Count < level + 1) {
list.Add(node.val.Value);
}
Recurse(node.right, level + 1, list);
Recurse(node.left, level + 1, list);
}
}
}