leetcode Add to List 637. Average of Levels in Binary Tree

网友投稿 271 2022-09-06

leetcode Add to List 637. Average of Levels in Binary Tree

就是对二叉树每一层求平均值。

开始想法用层次遍历,然而又不知道该点是在哪一层。

所以要求没一点的深度,而通过先序遍历递归求没一点的深度的过程中。

好像并不需要再去层次遍历,结果就已经很明显了。

要注意leetcode的树要用->。

两个数组用来存结果。

没有数据量范围我就写的100000.

还要注意有一个奇葩数据

2147483647 两个节点也是2147483647  ,所以要改成long long

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: long long a[100000]; int b[100000]; void f(TreeNode* root,int d) { if(root!=NULL){ a[d]+=root->val; b[d]+=1; //cout<val<<" "; f(root->left,++d); --d; f(root->right,++d); } } vector averageOfLevels(TreeNode* root) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); f(root,0); vector ans; for(int i=0;i<100000;i++){ if(b[i]!=0) ans.push_back((double)a[i]/(double)b[i]); } return ans; }};

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:梅花网:90%的“节点营销”,都是好创意、坏营销!
下一篇:POJ-2559利用栈往前迭代
相关文章

 发表评论

暂时没有评论,来抢沙发吧~