给定一个非空二叉树, 返回一个由每层节点平均值组成的数组
解题思路:很经典的层序遍历,建立个queue来存放每一层的节点
class Solution {
public:
vector<double> averageOfLevels(TreeNode* root) {
auto avg = vector<double>();
auto q = queue<TreeNode*>();
q.push(root);
while(!q.empty())
{
double sum = 0;
int n = q.size();
for(int i = 0 ; i < n ; i++)
{
auto node = q.front();
q.pop();
sum += node->val;
auto left = node->left , right = node->right;
if(left != NULL) q.push(left);
if(right != NULL) q.push(right);
}
avg.emplace_back(sum/n);
}
return avg;
}
};