45、二叉树-二叉树的右视图

思路

层序遍历 从左向右遍历每一层取最后一个数,代码如下:

java 复制代码
public List<Integer> rightSideView(TreeNode root) {
        if (root==null){
            return new ArrayList<>();
        }
        Queue<TreeNode> queue = new LinkedList<>();
        List<Integer> list = new ArrayList<>();
        TreeNode cur=root;
        queue.add(cur);
      
        while (!queue.isEmpty()){
            int size = queue.size();
            for (int i = 0; i < size; i++) {
                cur = queue.poll();
                if (i==size-1){
                    list.add(cur.val);
                }
                if (cur.left!=null){
                    queue.add(cur.left);
                }
                if (cur.right!=null){
                    queue.add(cur.right);
                }
            }
        }
        return list;
    }
相关推荐
爬山算法13 小时前
Hibernate(15)Hibernate中如何定义一个实体的主键?
java·后端·hibernate
廋到被风吹走13 小时前
【Spring】Spring AMQP 详细介绍
java·spring·wpf
一条大祥脚14 小时前
26.1.1
数据结构·算法
csuzhucong14 小时前
圆柱三阶魔方、六棱柱魔方
算法
mit6.82414 小时前
vector<int> dfs
算法
一起养小猫14 小时前
LeetCode100天Day6-回文数与加一
java·leetcode
POLITE314 小时前
Leetcode 234.回文链表 JavaScript (Day 9)
javascript·leetcode·链表
程序员小假15 小时前
我们来说一下 MySQL 的慢查询日志
java·后端
独自破碎E15 小时前
Java是怎么实现跨平台的?
java·开发语言
To Be Clean Coder15 小时前
【Spring源码】从源码倒看Spring用法(二)
java·后端·spring