637. 두 갈래 나무의 층 평균치

비공 두 갈래 나무를 정하고 각 층 노드의 평균값으로 구성된 그룹을 되돌려줍니다.
예 1:
 :
    3
   / \
  9  20
    /  \
   15   7
 :[3, 14.5, 11]
 :
  0   3 ,   1  14.5 ,  2  11 。  [3, 14.5, 11] 。

팁:
 32 。

해답


두 갈래 나무의 층계가 두루 다니다.
/**
 * 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:
    vector<double> averageOfLevels(TreeNode* root) {
     
        queue<TreeNode*> q;
        q.push(root);
        vector<double> result;
        while(!root || !q.empty()){
     
            double temp = 0;
            int s = q.size();
            for(int i=0;i<s;i++){
     
                TreeNode* node = q.front();
                q.pop();
                temp += node->val;
                if(node->left)  q.push(node->left);
                if(node->right) q.push(node->right);
            }
            result.push_back(temp/s);
        }
        return result;
    }
};

좋은 웹페이지 즐겨찾기