手撕算法-二叉树的层平均值

描述

image.png

分析

二叉树的层序遍历。
层序遍历需要用到队列。

代码

/**
 * 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 {
    List<Double> res = new ArrayList<>();

    public List<Double> averageOfLevels(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        bfs(queue);
        return res;
    }

    public void bfs(Queue<TreeNode> queue) {
        int len = queue.size(); // 获取这一层的节点数
        if(len == 0) return;

        long sum = 0; // 注意,放置int类型溢出,使用long型
        for (int i = 0; i < len; i++) {
            TreeNode node = queue.poll(); // 取出
            sum += node.val;
            if (node.left != null) {
                queue.offer(node.left); // 左节点放入队列 
            }
            if (node.right != null) {
                queue.offer(node.right); // 右节点放入队列
            }
        }

        res.add((double) sum / (double) len);

        bfs(queue);
    }
}

image.png

面试公司

相关推荐

  1. OJ习题

    2024-03-26 11:10:01       7 阅读
  2. 力扣637. 平均值

    2024-03-26 11:10:01       40 阅读
  3. Leetcode 637:平均值

    2024-03-26 11:10:01       14 阅读
  4. 平均值-力扣

    2024-03-26 11:10:01       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-26 11:10:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-26 11:10:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-26 11:10:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-26 11:10:01       20 阅读

热门阅读

  1. C++前端述职报告

    2024-03-26 11:10:01       21 阅读
  2. 算法——矩阵

    2024-03-26 11:10:01       20 阅读
  3. 基于SpringBoot IP黑白名单的实现3

    2024-03-26 11:10:01       16 阅读
  4. 数据分析-Pandas类别数据序列合并

    2024-03-26 11:10:01       19 阅读
  5. uniapp打包小程序,使用$refs报错解决办法

    2024-03-26 11:10:01       19 阅读
  6. FastAPI+React全栈开发03 为什么使用MongoDB

    2024-03-26 11:10:01       18 阅读
  7. 深入理解Flutter中的ValueNotifier

    2024-03-26 11:10:01       16 阅读
  8. JVM加类加载器

    2024-03-26 11:10:01       20 阅读
  9. 【LeetCode-300.最长递增子序列】

    2024-03-26 11:10:01       16 阅读
  10. APIKit探索之旅:bug拦截

    2024-03-26 11:10:01       18 阅读
  11. 使用 Vite 和 Bun 构建前端

    2024-03-26 11:10:01       20 阅读
  12. Docker 安装HBase 并使用

    2024-03-26 11:10:01       22 阅读
  13. 【笔记】Hbase基础笔记

    2024-03-26 11:10:01       20 阅读