• leetCode题解之求二叉树每层的平均值


    1、题目描述

    Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array.

    计算二叉树每一层的节点的数据域的平均值。

    2、题目分析

    使用广度优先遍历方法,逐层对二叉树进行访问,求均值。使用一个队列数据结构完成对二叉树的访问,队列(queue)的特点是FIFO,即先进先出,queue的几种常用的方法是:

    queue::front()  :访问队首元素

    queue:: pop()  删除队首元素

    queue::push()  入队

    queue:: back()  访问队尾元素

     1 vector<double> averageOfLevels(TreeNode* root) {
     2         
     3         vector<double> ave;
     4         queue<TreeNode*> q;
     5         q.push(root);
     6 
     7         while(!q.empty())
     8             {
     9                 double temp = 0.0;
    10                 int s = q.size();
    11                 for( int i = 0; i < s;i++ )
    12                     {
    13                         temp += q.front()->val;
    14                         if(q.front()->left) q.push(q.front()->left);
    15                         if(q.front()->right ) q.push(q.front()->right);
    16                         q.pop();
    17                     }
    18                 ave.push_back(temp/s);
    19 
    20             }
    21         return ave;
    22         
    23         
    24         
    25     }

    3、代码

    pp
  • 相关阅读:
    C++中的动态内存管理
    Harbor镜像仓库搭建
    nexus私服搭建
    Tekton ACK安装
    容器监控实践,从入门到放弃
    Bitwarden_搭建密码服务器
    Jenkins-部署文档
    Mysql-基本的
    Zabbix添加-钉钉故障报警
    ZABBIX-4.4 yum安装
  • 原文地址:https://www.cnblogs.com/wangxiaoyong/p/8686699.html
Copyright © 2020-2023  润新知