题目
给定一个二叉树的 根节点
root
,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
解题思路
- List添加元素的顺序可以作为树的层级;
- 将树以根右左的顺序遍历;
- 若当前层级已添加过元素则不再添加。
代码展示
class Solution { List<Integer> ans = new ArrayList<>(); public List<Integer> rightSideView(TreeNode root) { rightView(root,0); return ans; } public void rightView(TreeNode root, int height){ if(root == null){ return; } if(ans.size() <= height || ans.get(height) == null){ ans.add(root.val); } height++; rightView(root.right, height); rightView(root.left, height); } }