前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode44|在每个树行中找最大值

LeetCode44|在每个树行中找最大值

作者头像
码农王同学
发布于 2020-08-25 03:27:14
发布于 2020-08-25 03:27:14
73400
代码可运行
举报
文章被收录于专栏:后端Coder后端Coder
运行总次数:0
代码可运行

1,问题简述

您需要在二叉树的每一行中找到最大的值。

2,示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
输入:

          1
         / \
        3   2
       / \   \  
      5   3   9

输出: [1, 3, 9]

3,题解思路

队列的使用

4,题解程序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

public class LargestValuesTest {
    public static void main(String[] args) {
        TreeNode t1 = new TreeNode(1);
        TreeNode t2 = new TreeNode(3);
        TreeNode t3 = new TreeNode(2);
        TreeNode t4 = new TreeNode(5);
        TreeNode t5 = new TreeNode(3);
        TreeNode t6 = new TreeNode(9);
        t1.left = t2;
        t1.right = t3;
        t2.left = t4;
        t2.right = t5;
        t3.right = t6;
        List<Integer> integerList = largestValues(t1);
        System.out.println("integerList = " + integerList);

    }

    public static List<Integer> largestValues(TreeNode root) {
        List<Integer> list = new ArrayList<>();
        if (root == null) {
            return list;
        }
        Queue<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        while (!queue.isEmpty()) {
            int size = queue.size();
            int currentLevelMaxValue = Integer.MIN_VALUE;
            for (int i = 0; i < size; i++) {
                TreeNode node = queue.poll();
                currentLevelMaxValue = Math.max(currentLevelMaxValue, node.val);
                if (node.left != null) {
                    queue.add(node.left);
                }
                if (node.right != null) {
                    queue.add(node.right);
                }
            }
            list.add(currentLevelMaxValue);
        }
        return list;
    }
}

5,题解程序图片版

6,总结

队列的使用,队列的特点是先进先出,这也是日常生活很常见的一种的场景,购物,进站等场景吧,计算机里面队列的使用也是很常见的,比如打开计算机时,机器是如何运转的,优先级队列的运用却大有其奥妙之处,这就是队列的场景

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农王同学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
聊聊httpclient的connect
org/apache/http/conn/HttpClientConnectionOperator.java
code4it
2023/11/27
1460
聊聊httpclient的connect
聊聊httpclient的connect
org/apache/http/conn/HttpClientConnectionOperator.java
code4it
2023/11/26
3880
容器网络实践
本文通过docker的网络介绍容器网络的原理以及一些实践,通过实践一遍相信大家会对网络底层的原理有个更深的理解,最后给出对接ovs的教程,这对下一篇k8s对接ovn的原理理解打下一个基础。
sealyun
2019/07/25
7490
聊聊HttpClient的DnsResolver
org/apache/http/impl/conn/InMemoryDnsResolver.java
code4it
2023/10/17
4070
036.集群网络-K8S网络模型及Linux基础网络
  Kubernetes网络模型设计的一个基础原则是:每个Pod都拥有一个独立的IP地址,并假定所有Pod都在一个可以直接连通的、扁平的网络空间中。所以不管它们是否运行在同一个Node(宿主机)中,都要求它们可以直接通过对方的IP进行访问。设计这个原则的原因是,用户不需要额外考虑如何建立Pod之间的连接,也不需要考虑如何将容器端口映射到主机端口等问题。
不会飞的小鸟
2020/03/22
7620
java protostuff 序列化_使用Protostuff序列化
rpc调用,有多种序列化的方式,通用如json,mongodb使用的bson;java方面的,比如Java默认的序列化,比如hessian;还有跨语言的,比如thrift、protocolbuf。thrift和pb的好处是序列化后size比较小,但是缺点是得生成java代码,这个挺鸡肋的,所以不管二者运行时效率有多高,开发效率相对比较低的。像hessian,是有一些在用,但是感觉不如pb那样强大。所以也一直在寻找运行效率与开发效率兼得的序列化方式。偶尔在网上看到protostuff,觉得找到了一直在找的这种序列化方式。
全栈程序员站长
2022/08/22
1.2K0
java protostuff 序列化_使用Protostuff序列化
Java网络编程与NIO详解2:JAVA NIO 一步步构建IO多路复用的请求模型
本文转载自:htJava网络编程与NIO详解2:JAVA NIO 一步步构建IO多路复用的请求模型
Java技术江湖
2019/11/21
6910
网络|Netty|异步|接口
Channel它代表一个到实体(如一个硬件设备、一个文件、一个网络套接字或者一个能够执 行一个或者多个不同的I/O操作的程序组件)的开放连接,如读操作和写操作 .
heidsoft
2022/08/31
4860
浅谈容器网络
容器技术通过轻量化的资源隔离机制,极大地简化了应用部署的复杂性。而容器网络作为容器生态的核心组件,直接影响着容器间通信、服务发现及跨主机协同的能力。本文将从容器网络的基础组件出发,逐步剖析其工作原理及关键实现。
rxg456
2025/04/01
960
浅谈容器网络
ES系列(二):基于多播的集群发现实现原理解析
ES作为超强悍的搜索引擎,除了需要具有齐全的功能支持,超高的性能,还必须要有任意扩展的能力。一定程度上,它是一个大数据产品。而要做扩展性,集群自然少不了。然而单独的集群又是不够的,能够做的事情太少(比如通常的集群为负载均衡式对等集群),所以它需要自己组建合适自己的集群。也就是服务需要自动发现,自动协调集群实例。当然,这只是扩展性的第一步。
烂猪皮
2021/05/11
1K0
云原生时代必须具备的核心技能之Docker高级篇(Docker网络详解)
  前面给大家项目的介绍了Docker的基础内容 Docker基础篇 接下来给大家系统的介绍下Docker高级篇的内容:网络核心、Docker实战、DockerCompose、Harbor以及Swarm。欢迎关注收藏哦
用户4919348
2022/01/06
6990
云原生时代必须具备的核心技能之Docker高级篇(Docker网络详解)
推荐一款轻量级 HTTP/HTTPS 代理 TinyProxy
众所周知,我们常用的 Nginx / Apache 都可以很方便的用来做为正向或反向代理服务器使用。但是它们都并不支持 HTTPS 的正向代理。
iMike
2019/07/30
56.5K3
云原生虚拟网络 tun/tap & veth-pair
以前在研究 k8s 网络的时候,很多东西都看不太懂,只是蜻蜓点水过一下,这段时间打算恶补一下虚拟网络方面的知识,感兴趣的不妨一起探讨学习一下。
luozhiyun
2022/10/04
2K0
云原生虚拟网络 tun/tap & veth-pair
用iperf这个小工具,进行网络测试变得简单多了,就问你city不city?
在真正的项目中,网络质量是整个项目成功与否的基础。不但我们平时能想到基础物理设备间的网速、延迟和丢包数值都需要符合标准,在我经常接触的公有云中,不同的云主机的网络性能也需符合标准。但有时会遇到没有现成测试工具的情况,那我这时就用iperf做测试。今天我们就介绍iperf工具,它免费、轻量、操作简单,还可以做双向测试!
ICT系统集成阿祥
2024/12/03
9780
用iperf这个小工具,进行网络测试变得简单多了,就问你city不city?
Docker-进阶(容器网络、compose、harbor、swarm)
接着Docker-入门,上次了解了Docker的基本命令,镜像容器操作,自定义镜像两种方式(容器和DockerFile),数据卷实现容器数据持久化和容器间数据共享,都是日常工作中最常用的。
aruba
2022/09/28
9350
Docker-进阶(容器网络、compose、harbor、swarm)
介绍一个监控网卡及网络流量的好工具NICSTAT
最近发现了个好的工具,是监控网卡及网络流量的叫NICSTAT,这里我通过这个例子来说明
三杯水Plus
2018/11/14
2K0
聊聊nacos server的PushService
nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/push/PushService.java
code4it
2019/10/16
6260
axis和cxf集成Springmvc的使用
新建工程--》选择wsdl文件--》右键选择Webservice--->Generate Java Bean Skeleton
JQ实验室
2022/02/09
1K0
axis和cxf集成Springmvc的使用
JAVA--网络编程
(3)动态和/或私有端口(Dyanmic and /or Private Ports)
宁在春
2022/10/31
1960
JAVA--网络编程
KubeVirt macvtap虚拟机创建过程 自动实验
继续上篇 https://www.backendcloud.cn/2022/06/06/macvtap-lab/ 上篇是纯手动,这篇是借助Kubernetes+KubeVirt自动。
后端云
2022/11/25
2K0
KubeVirt macvtap虚拟机创建过程 自动实验
相关推荐
聊聊httpclient的connect
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验