目前实际效果为求每一层的平均值
vector<double> averageOfLevels(TreeNode* root) {
auto averages = vector<double>();
auto q = queue<TreeNode*>();
q.push(root);
while (!q.empty()) { //每次循环都进入下一层
double sum = 0;
int size = q.size(); //当前这一层结点的数量
for (int i = 0; i < size; ++i) { //循环遍历同层的每一个结点
auto node = q.front(); //访问头部结点
q.pop(); //弹出用过的结点
sum += node->val;
if (node->left != nullptr)
q.push(node->left);
if (node->right != nullptr)
q.push(node->right);
}
averages.push_back(sum / size);
}
return averages;
}