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

示例 1:

输入:

    3/ \9  20/  \15   7

输出:[3, 14.5, 11]
解释:
第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。

提示:

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

代码如下:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {public:vector<double> averageOfLevels(TreeNode* root) {auto cnt = vector<int>();auto sum = vector<double>();dfs(root,0,cnt,sum);auto ave = vector<double>();for (int i = 0;i<sum.size();i++){ave.push_back(sum[i]/cnt[i]);}return ave;}void dfs(TreeNode *root,int lev,vector<int>&cnt,vector<double>&sum){if (root==nullptr) return ;if (lev < sum.size()){sum[lev]+=root->val;cnt[lev]+=1;}else {sum.push_back(1.0*root->val);cnt.push_back(1);}dfs(root->left,lev+1,cnt,sum);dfs(root->right,lev+1,cnt,sum);}
};

LeetCode 637 二叉树的层平均值-简单相关推荐

  1. Java实现 LeetCode 637 二叉树的层平均值(遍历树)

    637. 二叉树的层平均值 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 示例 1: 输入: 3/ \9 20/ \15 7 输出: [3, 14.5, 11] 解释: 第0层的平均值是 ...

  2. LeetCode 637. 二叉树的层平均值(层次遍历queue)

    1. 题目 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 输入:3/ \9 20/ \15 7 输出: [3, 14.5, 11] 解释: 第0层的平均值是 3, 第1层是 14.5, ...

  3. LeetCode 637. 二叉树的层平均值

    方法一: public static List<Double> averageOfLevels(TreeNode root) {if(root==null)return null;List ...

  4. leetcode 637. Average of Levels in Binary Tree | 637. 二叉树的层平均值(Java)

    题目 https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/ 题解 1.参考"二叉树按层打印"写的解法 ...

  5. leetcode系列-637.二叉树的层平均值

    题目描述: 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值. 与实际答案相差 10-5 以内的答案可以被接受. 示例 1: 输入:root = [3,9,20,null, ...

  6. 力扣题目——637. 二叉树的层平均值

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 示例: 输入: ...

  7. 力扣637. 二叉树的层平均值(JavaScript)

    var averageOfLevels = function(root) {let arr=[]let qq=[root]while(qq.length){let len=qq.lengthlet s ...

  8. LeetCode简单题之二叉树的层平均值

    题目 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值.与实际答案相差 10-5 以内的答案可以被接受. 示例 1: 输入:root = [3,9,20,null,null ...

  9. LeetCode(637)——二叉树的层平均值(JavaScript)

    给定一个非空二叉树, 返回一个由每层节点平均值组成的数组. 示例: 输入: 输出: [3, 14.5, 11] 解释: 第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, ...

最新文章

  1. windows server2003 升级到windows server2012
  2. 系统设计经典题:手把手教你搭建一个IM(即时通讯) 系统
  3. jQ 插件 iscroll.js
  4. 【数据结构与算法】之深入解析十大常用排序算法的原理分析和算法实现
  5. android-verticalseekbar——Android可视化SeekBar类库
  6. 进程相关概念与多线程的基本使用
  7. php cors和jsonp,jsonp和CORS跨域实现
  8. android 查找所有dialog_android 布局文件layout分组的简单使用
  9. string s=new string() 创建了几个对象_Java的String类5个常见面试题的解答过程和原理...
  10. PostgreSql之在group by查询下拼接列字符串
  11. WIN98 当年的记忆
  12. JavaWeb开发——软件国际化(文本元素国际化)
  13. 《C++ 沉思录》阅读笔记——句柄类
  14. Bugzilla 下载和安装
  15. elementUI使用el-tabs时,页面崩溃卡死问题
  16. 生活是艰难的,我又划着我的断桨出发了
  17. 十大深网搜索引擎,它们提供了你无法从Google和Bing获取的信息
  18. 对261个国家地区快速查找选择
  19. uniapp地图轨迹回放
  20. 微软Project Online落地中国

热门文章

  1. 【错误异常大全】:ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS
  2. 【ArcGIS风暴】ArcGIS自定义坐标系统案例教程---以阿尔伯斯投影(Albers)为例
  3. Android之提示Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider
  4. linux之在当前目录下删除不包含aa的文件
  5. C语言常用头文件总结
  6. Android之如何实现通讯录的搜索并且让匹配到的数据变颜色
  7. 可见光能量范围_JACS:游书力团队通过可见光促进的吲哚衍生物分子内去芳构化合成环丁烷稠合的四环吲哚螺环...
  8. java 字节序列_java – 这个线程安全的字节序列生成器有什么问题?
  9. 用柠檬来发电真的可行吗?
  10. 盘点数学里十大不需语言的证明