题目描述
给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。
示例 1:
输入:
3
/ \
9 20
/ \
15 7
输出:[3, 14.5, 11]
解释:
第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。
提示:
- 节点值的范围在32位有符号整数范围内。
解答 By 海轰
提交代码
vector<double> averageOfLevels(TreeNode* root) {
queue<TreeNode*> q;
vector<double> ans;
q.push(root);
while(!q.empty())
{
int queuesize=q.size();
double sum=0;
for(int i=0;i<queuesize;++i)
{
TreeNode* temp=q.front();
q.pop();
sum+=(temp->val);
if(temp->left) q.push(temp->left);
if(temp->right) q.push(temp->right);
}
ans.push_back(sum/queuesize);
}
return ans;
}
运行结果
题目来源