1. 题目
给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/41e40006fa7b9a8265f7c02c87c91f85.png)
输入:
3
/ \
9 20
/ \
15 7
输出: [3, 14.5, 11]
解释:
第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].
2. 解题
class Solution {
public:
vector<double> averageOfLevels(TreeNode* root) {
if(root == NULL)
return {};
vector<double> ans;
int Num, n;
long lvsum;
queue<TreeNode*> q;
q.push(root);
while(!q.empty())
{
lvsum = 0;
n = Num = q.size();
while(Num--)
{
lvsum += q.front()->val;
if(q.front()->left)
q.push(q.front()->left);
if(q.front()->right)
q.push(q.front()->right);
q.pop();
}
ans.push_back(double(lvsum)/n);
}
return ans;
}
};