leetcode199-二叉树的右视图

原题

给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

示例:

输入: [1,2,3,null,5,null,4]
输出: [1, 3, 4]
解释:

   1            

解法

思想

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/

发表回复

登录后才能评论