【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;
    }
相关推荐
亓才孓31 分钟前
[JDBC]批处理
java
春日见32 分钟前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
宋小黑44 分钟前
JDK 6到25 全版本网盘合集 (Windows + Mac + Linux)
java·后端
7哥♡ۣۖᝰꫛꫀꪝۣℋ1 小时前
Spring-cloud\Eureka
java·spring·微服务·eureka
老毛肚1 小时前
手写mybatis
java·数据库·mybatis
两点王爷1 小时前
Java基础面试题——【Java语言特性】
java·开发语言
choke2331 小时前
[特殊字符] Python 文件与路径操作
java·前端·javascript
choke2331 小时前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
岁岁种桃花儿2 小时前
CentOS7 彻底卸载所有JDK/JRE + 重新安装JDK8(实操完整版,解决kafka/jps报错)
java·开发语言·kafka
roman_日积跬步-终至千里2 小时前
【Java并发】Java 线程池实战:警惕使用CompletableFuture.supplyAsync
java·开发语言·网络