LeetCode 637 二叉树的层平均值-简单
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 637 二叉树的层平均值-简单
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
給定一個(gè)非空二叉樹, 返回一個(gè)由每層節(jié)點(diǎn)平均值組成的數(shù)組。
示例 1:
輸入:
3/ \9 20/ \15 7輸出:[3, 14.5, 11]
解釋:
第 0 層的平均值是 3 , 第1層是 14.5 , 第2層是 11 。因此返回 [3, 14.5, 11] 。
提示:
節(jié)點(diǎn)值的范圍在32位有符號整數(shù)范圍內(nèi)。代碼如下:
/*** 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) {auto cnt = vector<int>();auto sum = vector<double>();dfs(root,0,cnt,sum);auto ave = vector<double>();for (int i = 0;i<sum.size();i++){ave.push_back(sum[i]/cnt[i]);}return ave;}void dfs(TreeNode *root,int lev,vector<int>&cnt,vector<double>&sum){if (root==nullptr) return ;if (lev < sum.size()){sum[lev]+=root->val;cnt[lev]+=1;}else {sum.push_back(1.0*root->val);cnt.push_back(1);}dfs(root->left,lev+1,cnt,sum);dfs(root->right,lev+1,cnt,sum);} };總結(jié)
以上是生活随笔為你收集整理的LeetCode 637 二叉树的层平均值-简单的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 桂花水的功效与作用、禁忌和食用方法
- 下一篇: LeetCode 257二叉树的所有路径