【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;
    }
相关推荐
小沈熬夜秃头中୧⍤⃝14 分钟前
fnOS生态下的WordPress个人网站从本地到公网访问的搭建与配置
java·开发语言
鸿即为江边鸟31 分钟前
Java UDP 通信:实现简单的 Echo 服务器与客户端
java
八股文领域大手子35 分钟前
Synchronized解析
java·数据库·sql·mysql
码熔burning38 分钟前
(二 十 一)趣学设计模式 之 访问者模式!
java·设计模式·访问者模式
浮生若梦l44 分钟前
原生android 打包.aar到uniapp使用
android·java·uni-app
孑么1 小时前
力扣 最长回文子串
java·数据结构·算法·leetcode·职场和发展·动态规划
开开心心就好1 小时前
高效玩转 PDF:实用的分割、合并操作详解
android·java·网络·windows·智能手机·pdf·软件工程
流光听风语1 小时前
【基础1】冒泡排序
java·数据结构·算法
binbinxyz1 小时前
【算法系列】桶排序算法介绍及实现
java·算法·排序算法
i建1 小时前
排序法-冒泡排序法
java·学习