D56 637. Average of Levels in Binary Tree
题目链接
637. Average of Levels in Binary Tree
题目分析
返回每一层的平均值。
思路
和前一篇相似。先保存每一层的值,再逐层计算平均值即可。
最终代码
<?php
/**
* Definition for a binary tree node.
* class TreeNode {
* public $val = null;
* public $left = null;
* public $right = null;
* function __construct($value) { $this->val = $value; }
* }
*/
class Solution {
/**
* @param TreeNode $root
* @return Float[]
*/
public $level = 0;
public $values = [];
function averageOfLevels($root) {
$this->levelValues($root);
$avg = [];
foreach($this->values as $values){
$avg[] = array_sum($values)/count($values);
}
return $avg;
}
function levelValues($root){
if(is_null($root)){
return $this->values;
}
if(!isset($this->values[$this->level])){
$this->values[$this->level] = [];
}
$this->values[$this->level][] = $root->val;
if($root->left){
$this->level++;
$this->averageOfLevels($root->left);
$this->level--;
}
if($root->right){
$this->level++;
$this->averageOfLevels($root->right);
$this->level--;
}
return $this->values;
}
}
若觉得本文章对你有用,欢迎用爱发电资助。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。