您当前的位置: 首页 >  liyatjj leetcode

LeetCode二叉树的右侧视图

liyatjj 发布时间:2022-09-23 21:07:32 ,浏览量:5

剑指 Offer II 046. 二叉树的右侧视图

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

在这里插入图片描述

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

来源:LeetCode

BFS解题。 层序遍历,不过就是要在每层遍历完成之后判断最后一个元素,也就是在while循环的时候用len来判断是否是最后一个元素,每经过一次while,其实就是一个元素出队列,当len为0时,也就是最后一个元素出队列,此时就记录到ans中;这一点对于根节点也照样适用。

class Solution {
    public List rightSideView(TreeNode root) {
        List ans=new ArrayList();
        if(root==null){
            return new ArrayList();
        }
        Queue queue = new ArrayDeque();
        queue.offer(root);
        TreeNode t = root;
        while(!queue.isEmpty()){
            
            int len=queue.size();
            
            while(len-->0){
                
                TreeNode node = queue.poll();
                if(len==0){
                    ans.add(node.val);
                }
                if(node.left!=null){
                    queue.offer(node.left);
                }
                if(node.right!=null){
                    queue.offer(node.right);
                }
            }
        }
        return ans;
    }
}
关注
打赏
1688896170
查看更多评论

liyatjj

暂无认证

  • 5浏览

    0关注

    99博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0812s