class Solution {
public:
vector<double> averageOfLevels(TreeNode* root) {
vector<double>ans;
TreeNode* t;
queue<TreeNode*>q;
int size = 1,i = 0;
double sum_tree = 0;
if (root)
q.push(root);
while (!q.empty()) {
t = q.front();
sum_tree += t->val; i++; q.pop();
if (t->left)q.push(t->left);
if (t->right)q.push(t->right);
if (i == size)
ans.push_back(sum_tree / i), i = 0, size = q.size(), sum_tree = 0;
}
return ans;
}
};