力扣:637.二叉树的层平均值
代码随想录解析
题目:
给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。
思路:
按层序遍历,用sum记录每一层的加和值,每一层结束取平均值放入 vector 中。
代码:
class Solution {
public:
vector<double> averageOfLevels(TreeNode* root) {
queue<TreeNode*>que;
if(root != nullptr) que.push(root);
vector<double> v;
while(!que.empty()){
int size = que.size();
double sum = 0;
for(int i = 0; i < size; i++){
TreeNode* node = que.front();
sum += node->val;
que.pop();
if(node->left) que.push(node->left);
if(node->right) que.push(node->right);
}
v.push_back(sum / size);
}
return v;
}
};