• 637. Average of Levels in Binary Tree


    题目描述:

     
    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:

    1. The range of node's value is in the range of 32-bit signed integer.

    解题思路:

    使用queue,遍历树的每一层,确保每次queue中只保存了一层的节点。

    代码:

     1 /**
     2  * Definition for a binary tree node.
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 class Solution {
    11 public:
    12     vector<double> averageOfLevels(TreeNode* root) {
    13         vector<double> ret;
    14         queue<TreeNode*> nodes;
    15         nodes.push(root);
    16         while (!nodes.empty()) {
    17             double sum = 0;
    18             int size = nodes.size();
    19             for (int i = 0; i < size; ++i) {
    20                 TreeNode* tmp = nodes.front();
    21                 nodes.pop();
    22                 sum += tmp->val;
    23                 if (tmp->left)
    24                     nodes.push(tmp->left);
    25                 if (tmp->right)
    26                     nodes.push(tmp->right);
    27             }
    28             ret.push_back(sum / size);
    29         }
    30         return ret;
    31     }
    32 };
    View Code
  • 相关阅读:
    花匠
    积木
    Hello world
    老鼠走迷宫全部路径
    今天下午选做题目
    整数高精度运算——加法
    博客启航
    解线性不定方程
    关于完全背包问题
    关于最小代价子母树
  • 原文地址:https://www.cnblogs.com/gsz-/p/9520345.html
Copyright © 2020-2023  润新知