题目描述
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.
For example:
Given the following binary tree,
1 2 3 4 5
|
1 <- / 2 3 <- 5 4 <-
|
You should return [1, 3, 4].
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
* Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<Integer> rightSideView(TreeNode root) { List<Integer> res = new ArrayList<>(); rightView(root, res, 0); return res; } public void rightView(TreeNode root, List<Integer> res, int currHeight){ if(root == null) return; if(res.size() == currHeight) res.add(root.val); rightView(root.right, res, currHeight+1); rightView(root.left, res, currHeight+1); } }
|
近期评论