Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array.
Example 1:
Input: 3 / 9 20 / 15 7 Output: [3, 14.5, 11] Explanation: The average value of nodes on level 0 is 3, on level 1 is 14.5, and on level 2 is 11. Hence return [3, 14.5, 11].
思路:
层次遍历。
vector<double> averageOfLevels(TreeNode* root) { vector<double>ret; if(root==NULL)return ret; queue<TreeNode*>que; que.push(root); TreeNode* temp; while(!que.empty()) { int n = que.size(); double sum = 0; for(int i = 0;i<n;i++) { temp = que.front(); que.pop(); sum+= temp->val; if(temp->left!=NULL)que.push(temp->left); if(temp->right!=NULL)que.push(temp->right); } ret.push_back(sum/(double)n); } return ret; }