LeetCode刷题(147)~二叉树的层平均值

题目描述

给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。

示例 1:

输入:
    3
   / \
  9  20
    /  \
   15   7
输出:[3, 14.5, 11]
解释:
第 0 层的平均值是 3 ,1层是 14.5 ,2层是 11 。因此返回 [3, 14.5, 11]

提示:

  • 节点值的范围在32位有符号整数范围内。

解答 By 海轰

提交代码

vector<double> averageOfLevels(TreeNode* root) {
     
        queue<TreeNode*> q;
        vector<double> ans;
        q.push(root);
        while(!q.empty())
        {
     
            int queuesize=q.size();
            double sum=0;
            for(int i=0;i<queuesize;++i)
            {
     
                TreeNode* temp=q.front();
                q.pop();
                sum+=(temp->val);
                if(temp->left) q.push(temp->left);
                if(temp->right) q.push(temp->right);
            }
            ans.push_back(sum/queuesize);
        } 
        return ans;
    }

运行结果
LeetCode刷题(147)~二叉树的层平均值_第1张图片

题目来源

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree

你可能感兴趣的:(算法,leetcode)