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;    }}

若觉得本文章对你有用,欢迎用爱发电资助。