原题
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释: 1 <--- / \ 2 3 <--- \ \ 5 4 <---
解法
思想
dfs,注意查找顺序即可,用list存储答案下标代表层数,后找到的不会覆盖先找到的
代码
class Solution {
List<Integer> ans;
public List<Integer> rightSideView(TreeNode root) {
ans = new ArrayList<>();
dfs(root,1);
return ans;
}
public void dfs(TreeNode node,int depth){
if(node==null) return;
if(ans.size()<depth){
ans.add(node.val);
}
dfs(node.right,depth+1);
dfs(node.left,depth+1);
}
}
原创文章,作者:彭晨涛,如若转载,请注明出处:https://www.codetool.top/article/leetcode199-%e4%ba%8c%e5%8f%89%e6%a0%91%e7%9a%84%e5%8f%b3%e8%a7%86%e5%9b%be/