void aveLevHelp(vector<double> &res,vector<int> &cnt,unsigned int lev,TreeNode *r)
{
if(r==NULL) return;
if(lev+1>res.size())
{
res.push_back(0);
cnt.push_back(0);
}
res[lev]+=r->val;
cnt[lev]++;
aveLevHelp(res,cnt,lev+1,r->left);
aveLevHelp(res,cnt,lev+1,r->right);
}
vector<double> averageOfLevels(TreeNode* r)
{
vector<double> res;
vector<int> cnt;
aveLevHelp(res,cnt,0,r);
for(unsigned int i=0;i<res.size();++i)
{
res[i]/=cnt[i];
}
return res;
}
[LeetCode] 637. Average of Levels in Binary Tree
最新推荐文章于 2021-02-24 19:52:01 发布
本文介绍了一种算法,用于计算二叉树每个层级节点值的平均数。通过递归方式遍历二叉树的各个层级,并记录每层节点的数量及总和,最终计算出各层级的平均值。
375

被折叠的 条评论
为什么被折叠?



