给定一个非空二叉树的根节点 root
, 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5
以内的答案可以被接受。
示例 1:
输入:root = [3,9,20,null,null,15,7] 输出:[3.00000,14.50000,11.00000] 解释:第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11 。 因此返回 [3, 14.5, 11] 。
示例 2:
输入:root = [3,9,20,15,7] 输出:[3.00000,14.50000,11.0000]
AC
class Solution {
public:
int ans;
int getMinimumDifference(TreeNode* root) {
vector<int> ans;
queue<TreeNode*> q;
q.push(root);
while(!q.empty()){
int count=q.size();
TreeNode* node=nullptr;
int n=0;
while(count--){
node=q.front();
q.pop();
//sum+=node->val;
ans.push_back(node->val);
n++;
if(node->left) q.push(node->left);
if(node->right) q.push(node->right);
}
}
int jieguo=100010;
sort(ans.begin(), ans.end());
int n=ans.size();
for(int i=0;i<n-1;i++){
jieguo=min(jieguo,ans[i+1]-ans[i]);
}
return jieguo;
}
};