【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;
    }
相关推荐
quikai198119 小时前
python练习第六组
java·前端·python
222you19 小时前
线程的常用方法
java·开发语言
是梦终空20 小时前
JAVA毕业设计259—基于Java+Springboot+vue3工单管理系统的设计与实现(源代码+数据库+开题报告)
java·spring boot·vue·毕业设计·课程设计·工单管理系统·源代码
用户21903265273520 小时前
Spring Boot 集成 Redis 实现看门狗 Lua 脚本分布式锁
java·后端
zybsjn20 小时前
ShardingSphere 启动报错 “Unknown table ‘keywords‘ in information_schema“ 完整解决方案
java
月明长歌20 小时前
【码道初阶】【LeetCode 102】二叉树层序遍历:如何利用队列实现“一层一层切蛋糕”?
java·数据结构·算法·leetcode·职场和发展·队列
codingPower20 小时前
制作ftl文件通过FreeMarke生成PDF文件(含图片处理)
java·开发语言·pdf
R.lin20 小时前
Spring AI Alibaba 1.1 正式发布!
java·后端·spring
程序员阿明20 小时前
spring security 6的知识点总结
java·后端·spring
李子园的李20 小时前
Java函数式接口——渐进式学习
java