zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    dos
    admin package
    ant 调用系统环境变量
    idea6+tomcat5.5开发web程序
    VFloppy
    ant中classpath
    Velocity用户手册
    ant中 Tomcat的任务调用(包括deploy,undeploy,load,start,stop等)
    [转]aidl高级应用篇
    Android NDK开发环境安装(OK版)
  • 原文地址:https://www.cnblogs.com/gsz-/p/9520345.html
Copyright © 2011-2022 走看看