637. 二叉树的层平均值

637. Average of Levels in Binary Tree

LeetCode637. Average of Levels in Binary Tree

题目描述

给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.

示例 1:

输入:

    3
/ \
9 20
/ \
15 7

输出: [3, 14.5, 11]

解释:

第 0 层的平均值是 3,第 1 层是 14.5,第 2 层是 11.因此返回 [3, 14.5, 11].

注意:

1. 节点值的范围在32位有符号整数范围内。

Java 实现

import java.util.LinkedList;
import java.util.List;
import java.util.Queue; class TreeNode {
int val;
TreeNode left;
TreeNode right; TreeNode(int x) {
val = x;
}
} class Solution {
public List<Double> averageOfLevels(TreeNode root) {
List<Double> result = new LinkedList<>();
Queue<TreeNode> queue = new LinkedList<>();
if (root == null) {
return result;
}
queue.offer(root);
while (!queue.isEmpty()) {
double avg = 0.0;
int size = queue.size();
for (int i = 0; i < size; i++) {
if (queue.peek().left != null) {
queue.offer(queue.peek().left);
}
if (queue.peek().right != null) {
queue.offer(queue.peek().right);
}
avg += queue.poll().val;
}
result.add(avg / size);
}
return result;
}
}

相似题目

参考资料

最新文章

  1. PHP实现RESTful风格的API实例(三)
  2. swift 闭包
  3. 微信也有土豪版 针对iPhone 6/6 Plus进行优化
  4. Css3_必备10个东西
  5. Hadoop学习地址
  6. Java_Swing实现小球沿正弦曲线运动的代码
  7. 【HDOJ】【3530】Subsequence
  8. ps -aux返回超过100%
  9. CentOS下Mysql安装调试
  10. 红豆带你从零学C#系列之——初识C#
  11. 将一个字典内的内value转换为集合:返回一个数组,此数组中包含输入字典的键值对中的数组的所有元素(为NSArray添加category)
  12. spring框架总结(01)
  13. Python 安装包的导入
  14. Ubuntu 18.04编译AOSP源码
  15. 【Android Studio安装部署系列】三、Android Studio项目目录结构
  16. SpringBoot实战(八)之RabbitMQ
  17. 用es6类封装的图片预加载技术!
  18. oracle数据库查询语句case的用法
  19. openEntityForm如何给关于(regardingobjectid)类型查找字段赋值?
  20. MySQL 5.7开启二进制日志注意事项

热门文章

  1. Pytest权威教程11-模块及测试文件中集成doctest测试
  2. 【多线程与并发】:Java中的锁
  3. “都是为了生活”小组 选题 Scrum立会报告+燃尽图 01
  4. T-MAX--冲刺合集
  5. Git是怎么Ignore文件的?
  6. 在 delphi (Object Pascal 语言)中,使用 array 关键字进行数组定义。
  7. css3画半圆的两种方法
  8. 为什么一般hashtable的桶数会取一个素数
  9. Python 初级 5 判断再判断
  10. SQL查询优化 LEFT JOIN和INNER JOIN