网站架构搭建,广告网站模板下载不了,阿里云企业网站建设,备案的域名做电影网站前言 题目#xff1a; 637. 二叉树的层平均值 文档#xff1a; 代码随想录——二叉树的层平均值 编程语言#xff1a; C 解题状态#xff1a; 求取平均值的时候出现了点问题 思路
C中#xff0c;浮点数的相加会产生精度误差#xff0c;求取平均值时最好只在最后一步进行…前言 题目 637. 二叉树的层平均值 文档 代码随想录——二叉树的层平均值 编程语言 C 解题状态 求取平均值的时候出现了点问题 思路
C中浮点数的相加会产生精度误差求取平均值时最好只在最后一步进行除法运算。本题在求平均值之前需要使用层序遍历方便求解。
代码
/*** 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:vectordouble averageOfLevels(TreeNode* root) {queueTreeNode* q;vectordouble res;if (root ! NULL) q.push(root);while (!q.empty()) {int size q.size();double sum 0;for (int i 0; i size; i) {TreeNode* node q.front();q.pop();sum (node - val);if (node - left) q.push(node - left);if (node - right) q.push(node - right);}res.push_back(sum / size);}return res;}
};