LeetCode 637. Average of Levels in Binary Tree

来源:互联网 发布:多玩数据库5.4 编辑:程序博客网 时间:2024/06/01 14:50

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].
Note:
The range of node’s value is in the range of 32-bit signed integer.

同样是层次遍历。

/** * 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) {        vector<double> res;        deque<TreeNode*> dq;        dq.push_back(root);        TreeNode* node = nullptr;        while(!dq.empty())        {            int sz = dq.size();            double sum = 0;            for(int i=0;i<sz;++i)            {                node = dq.front();                sum += node->val;                dq.pop_front();                if(node->left)                    dq.push_back(node->left);                if(node->right)                    dq.push_back(node->right);            }            res.push_back(sum/sz);        }        return res;    }};
原创粉丝点击