/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
vector<double> averageOfLevels(TreeNode* root) {
queue<TreeNode*>q;
if(root)q.push(root);
vector<double>ans;
while(!q.empty()){
int k=q.size();
double cnt=(double)k;
double sum=0;
while(k--){
TreeNode*p=q.front();
sum+=p->val;
if(p->left)q.push(p->left);
if(p->right)q.push(p->right);
q.pop();
}
ans.push_back(sum/cnt);
}
return ans;
}
};
637. 二叉树的层平均值
最新推荐文章于 2024-07-10 11:04:17 发布
文章描述了一个C++类`Solution`的方法,用于计算给定二叉树各层节点值的平均数。它使用队列实现广度优先搜索(BFS),逐层遍历节点并累计值,最后将每层的总和除以节点数量得到平均值。
摘要由CSDN通过智能技术生成