leetcode 637. Average of Levels in Binary Tree 二叉树的层平均值(简单)

一、题目大意

给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。

示例 1:

leetcode 637. Average of Levels in Binary Tree 二叉树的层平均值(简单)

输入:root = [3,9,20,null,null,15,7]
输出:[3.00000,14.50000,11.00000]
解释:第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11 。
因此返回 [3, 14.5, 11] 。

示例 2:

leetcode 637. Average of Levels in Binary Tree 二叉树的层平均值(简单)

输入:root = [3,9,20,15,7]
输出:[3.00000,14.50000,11.00000]

提示:

  • 树中节点数量在 [1, 104] 范围内
  • -231

来源:力扣(LeetCode
链接:https://leetcode.cn/problems/average-of-levels-in-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、解题思路

求一个二叉树每层的平均值,利用广度优先搜索,我们可以很方便地求取每层的平均值。直接使用queue,直接将每层的值累计加起来除以该层的节点个数,存入结果ans中即可。

三、解题方法

3.1 Java实现

/**
 * Definition for a binary tree node.

 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public List averageOfLevels(TreeNode root) {
        List ans = new ArrayList<>();
        if (root == null) {
            return ans;
        }
        Queue q = new LinkedList<>();
        q.add(root);
        while (!q.isEmpty()) {
            int count = q.size();
            double sum = 0;
            for (int i = 0; i < count; i++) {
                TreeNode node = q.peek();
                q.poll();
                sum += node.val;
                if (node.left != null) {
                    q.add(node.left);
                }
                if (node.right != null) {
                    q.add(node.right);
                }
            }
            ans.add(sum / count);
        }
        return ans;
    }
}

四、总结小记

  • 2022/9/15 notion是pld的典范,什么是PLG,product-led groupth。

Original: https://www.cnblogs.com/okokabcd/p/16697997.html
Author: okokabcd
Title: leetcode 637. Average of Levels in Binary Tree 二叉树的层平均值(简单)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620686/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JavaWeb核心篇(4)——Cookie和Session

    Java核心篇(4)——Cookie和Session 本篇文章将会简单介绍Cookie和Session的概念和用法 会话跟踪技术 首先我们需要搞清楚会话和会话跟踪的概念: 会话:用…

    数据库 2023年6月14日
    0123
  • 解读《Benchmarking Hybrid OLTP&OLAP Database Systems》| StoneDB学术分享会

    编者按: Benchmarking 作为一个衡量标尺,可从不同的维度来客观公正公平的评价相关产品,例如:对应数据测评而言,有 TPC-C、TPC-H,TP-DS 等等。现有的这些测…

    数据库 2023年6月11日
    0112
  • 程序员“迷惑代码”大赏

    谈到程序员,对于外行人来说一贯的印象就是格子衫大裤衩外加人字拖,蓬头(秃头)垢面黑眼圈,还有就是”人傻钱多死得快”🤣,这是外界对程序员固有的思想,但是作为新…

    数据库 2023年6月11日
    091
  • MySQL(一)——查看密码与修改

    查看数据库密码,策略与修改 RPM安装: 源码安装: 进入:数据库 进入数据库后第一步设置密码: 查看密码策略 修改密码策略,长度 0宽容模式 混合模式,0关闭大小写 特殊字符 O…

    数据库 2023年6月14日
    0121
  • 解决Laravel报错No application encryption key has been specified的问题

    可能有些小伙伴从git上拉下来的项目在本地运行时会报No application encryption key has been specified的错,如图: 这是因为.env文…

    数据库 2023年6月14日
    074
  • markdown笔记

    注:笔记旨在记录 1.1 展示一级标题(在标题紧接的下一行加若干个’=’) ======= 1.2 展示二级标题 (在标题紧接的下一行加若干个’…

    数据库 2023年6月16日
    0100
  • myrocks复制中断问题排查

    mysql可以支持多种不同的存储引擎,innodb由于其高效的读写性能,并且支持事务特性,使得它成为mysql存储引擎的代名词,使用非常广泛。随着SSD逐渐普及,硬件存储成本越来越…

    数据库 2023年6月9日
    0102
  • Spring Bean的作用域

    Spring Bean的作用域或者说范围主要有五种: 作用 描述 singleton 在spring IoC容器仅存在一个Bean实例,Bean以单例方式存在,bean作用域范围的…

    数据库 2023年6月16日
    062
  • DNS 查询原理详解

    你可能会问,难道 DNS 服务器(比如 1.1.1.1)保存了世界上所有域名(包括二级域名、三级域名)的 IP 地址? 当然不是。DNS 是一个分布式系统,1.1.1.1 只是用户…

    数据库 2023年6月14日
    0108
  • 阿里慢SQL治理5大经典案例

    菜鸟供应链金融慢sql治理已经有一段时间,自己负责的应用持续很长时间没有慢sql告警,现阶段在推进组内其他成员治理应用慢sql。这里把治理过程中的一些实践拿出来分享下。 一、全表扫…

    数据库 2023年5月24日
    0127
  • vue-router各个属性的作用及用法

    原文:https://www.cnblogs.com/goloving/p/9211358.html vue-router是vue单页面开发的路由,就是决定页面跳转的! Props…

    数据库 2023年6月16日
    085
  • rsync

    rsync是什么 rsync特性 1)可以镜像保存整个目录树和文件系统。 2)可以很容易做到保持原来文件的权限、时间、软硬连接等。 3)无需特殊权限即可安装。 4)快速:第一次同步…

    数据库 2023年6月14日
    082
  • gorm 版本对比

    两个版本 github.com/jinzhu/gorm v1.9.16 gorm.io/gorm v1.21.3 Open // jinzhu func Open(dialect …

    数据库 2023年6月9日
    0116
  • MySQL实战45讲 16

    16 | “order by”是怎么工作的? 以公民表为例,假设您想要查询所有城市为“杭州”的人的姓名,并根据他们的名字返回前1000人的姓名和年龄。 [E…

    数据库 2023年5月24日
    077
  • SQL的函数

    MySQL常用的日期函数函数 功能 curdate() 返回当前日期 curtime() 返回当前时间 now() 返回当前日期和时间 year() 获取指定date的年份 mon…

    数据库 2023年5月24日
    090
  • 【海量数据算法】如何判断一个数是否在40亿个整数中

    如何判断一个数是否在40亿个整数中 2.1《编程珠玑》给出的方案 我们把40亿个数中的每一个用32位的二进制来表示,假设这40亿个数开始放在一个文件中。 然后将这40亿个数分成两类…

    数据库 2023年6月11日
    088
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球