1. 题目
给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.
代码语言:javascript复制输入:
3
/
9 20
/
15 7
输出: [3, 14.5, 11]
解释:
第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].
2. 解题
- queue按层遍历,每次进入循环记录队列长度n
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;
}
};