leetCode题解之求二叉树每层的平均值
Posted 山里的小勇子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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、代码
以上是关于leetCode题解之求二叉树每层的平均值的主要内容,如果未能解决你的问题,请参考以下文章
637. Average of Levels in Binary Tree 二叉树每一层的平均值