首页 > 其他分享 >06_二叉树的右视图

06_二叉树的右视图

时间:2023-11-17 15:25:49浏览次数:34  
标签:tmp 06 list 视图 add que 二叉树 null

二叉树的右视图

给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

示例 1:

img

输入: [1,2,3,null,5,null,4]
输出: [1,3,4]

示例 2:

输入: [1,null,3]
输出: [1,3]

示例 3:

输入: []
输出: []

提示:

  • 二叉树的节点个数的范围是 [0,100]
  • -100 <= Node.val <= 100

【思路】

层次遍历的时候,判断是否遍历到单层的有右边的元素,如果是,则放进result数组中,随后返回result即可。

class Solution {
    public List<Integer> rightSideView(TreeNode root) {
        List<Integer> list = new ArrayList<>();
        Deque<TreeNode> que = new LinkedList<>();
        if (root == null) return list;
        que.add(root);
        while (!que.isEmpty()) {
            int levelSize = que.size();
            for(int i = 0; i < levelSize; i++) {
                TreeNode tmp = que.poll();
                if (tmp.left != null)  que.add(tmp.left);
                if (tmp.right != null)  que.add(tmp.right);
                //判断i是否为当前层的最右边的元素,是最右边的元素的话返回至结果列表中
                if (i == levelSize - 1) {
                    list.add(tmp.val);
                }
            }   
        }
        return list;
    }
}

标签:tmp,06,list,视图,add,que,二叉树,null
From: https://www.cnblogs.com/codingbao/p/17838818.html

相关文章

  • Day06面向对象编程
    所有学习内容来自:狂神说java一、面向对象编程面向对象&面向过程什么是面向对象:二、方法回顾值传递和引用传递:引用类型如类、数组等输入方法后是引用传递,在方法中改变其内部的值会导致方法外也改变;int等基本类型是值传递,不改变方法外的值。//引用传递publicclassDemo0......
  • 全志XR806基于http的无线ota功能实验
    XR806不仅硬件功能多,XR806也提供了功能极其丰富的SDK,几天体验下来非常容易上手。常见的功能几乎都有相应的cmd或demo实现,HAL也做得非常全面,非常适合快速开发。这一点超级好评!本文章要实现的无线OTA也基于该SDK。环境搭建本实验主机环境为ubuntu,并基于freertossdk开发,这里不详述,......
  • Websphere - WSVR0605W 错误
    官方连接:https://www.ibm.com/support/pages/wsvr0605w-thread-may-be-hung-message-logsWSVR0605W-"Threadmaybehung"messageinthelogsTroubleshootingProblemAWSVR0605WmessageintheSystemOut.logmightbemisleadingbecausethismessagenorma......
  • 二叉树的遍历
    先序遍历非递归算法1classSolution{public:vector<int>preorderTraversal(TreeNode*root){stack<TreeNode*>st;vector<int>result;if(root==NULL)returnresult;st.push(root);while(!st.empty())......
  • 二叉树
    #include<stdio.h>#include<stdlib.h>//二叉树节点的定义typedefstructTreeNode{intdata;structTreeNode*left;structTreeNode*right;}TreeNode;//创建新节点TreeNode*createNode(intdata){TreeNode*newNode=(TreeNode*)malloc......
  • [ARC106F] Figures 题解
    题意给定\(N\)个带有若干洞的节点,其中第\(i\)个点上有\(d_i\)个洞。先可以在两个不同的节点的洞之间连边,一个洞最多连一条边,求使得最终形成的图是一棵树的方案数,对\(998244353\)取模。洞之间相互区分,两个方案不同当且仅当存在一条边在两个方案中的连的洞不同。\(2\l......
  • LeetCode之二叉树
    发现更多计算机知识,欢迎访问Cr不是铬的个人网站最近数据结构学到二叉树,就刷了刷力扣,写这篇文章也是辅助记忆。103二叉树锯齿形遍历要解出本道题,首先要会层次遍历。层次遍历我们都知道用一个队列去实现就行。但是力扣这里的输出时一个二维的vector,每一层的值在不同的列表里面......
  • esp32笔记[10]-rust驱动ssd1306显示屏
    摘要使用rust(no-std)环境和esp-hal库实现SSD1306显示屏(128x64)显示bmp图片.平台信息esp32(模组:ESP32-WROOM-32D)(xtensalx6)(xtensa-esp32-none-elf)rust超链接esp32笔记[7]-使用rust+zig开发入门原理简介rust的include_bytes!宏Rust的include_bytes!宏可以用......
  • Java方法06:递归讲解
     publicclassDemo05{publicstaticvoidmain(String[]args){//打印5的阶乘System.out.println(f(5));}publicstaticintf(intn){if(n==1){return1;}else{returnn*f(n-1);......
  • mysql链接不上3306报错10060
    1、控制台进入查看防火墙(前提mysql我的端口是3306,现在大部分人已经不用3306了)firewall-cmd--zone=public--list-ports(查看3306端口是否开启,如果没见到3306端口)2、添加3306firewall-cmd--zone=public--add-port=3306/tcp--parmanent3、如上添加成功了,最重要的一点来......