【hot100】199二叉树的右视图

一、思路

这题和二叉树的层序遍历几乎一样,就是在层序遍历的基础上,只把每层最右边的元素加入list里即可

二、记忆

1.双端队列中有记录长度的属性,可以直接获取

Deque<TreeNode> treeNodes = new LinkedList<>();

int currentsize = treeNodes.size();

三、代码

复制代码
public List<Integer> rightSideView(TreeNode root){
        if (root==null) return new ArrayList<>();
        Deque<TreeNode> treeNodes = new LinkedList<>();
        List<Integer> ret = new ArrayList<>();
        treeNodes.add(root);
        while(!treeNodes.isEmpty()){
            int currentsize = treeNodes.size();
            for (int i = 0;i<currentsize;i++){
                TreeNode temp = treeNodes.pollFirst();
                if (i==currentsize-1) ret.add(temp.val);//每行最后一个树加入
                if (temp.left!=null){
                    treeNodes.addLast(temp.left);
                }
                if (temp.right!=null){
                    treeNodes.addLast(temp.right);
                }
            }
        }
        return ret;
    }
相关推荐
神明不懂浪漫2 小时前
【第五章】Java中的继承与多态
java·开发语言
AI多Agent协作实战派4 小时前
AI多Agent协作系统实战(十七):凌晨4点,我的AI系统在“假装工作“——3个bug同时爆炸的5小时
java·前端·bug
gaolei_eit4 小时前
Java+Ai+vue
java·spring·maven
qq_2518364574 小时前
基于java Web 动漫视频网站毕业论文
java·开发语言·前端
LayZhangStrive4 小时前
JUC相关的函数、注解、变量杂记
java·面试·多线程·juc
未秃头的程序猿5 小时前
给公司做了个AI客服Agent,用的Spring AI 1.0,3天上线领导拍板了
java·后端·ai编程
曹牧5 小时前
Eclipse 批量文本替换
java·ide·eclipse
程序员清风5 小时前
OpenAI官方发布最新提示词技巧!
java·后端·面试
一只枫林5 小时前
MySQL内、外连接知识点汇总
java·前端·数据库
梅头脑5 小时前
写了3年CRUD,volatile和synchronized的区别还是答不清——直到我画出了这张三性两锁边界图
java