Рубрики
Uncategorized

Решение для кода leet в PHP — D56 637. Среднее значение уровней в двоичном дереве

Автор оригинала: David Wong.

Ссылка на Заголовок

637. Среднее значение уровней в двоичном дереве

Анализ названия

Возвращает среднее значение каждого слоя.

размышляющий

Аналогично предыдущему. Сначала сохраните значения каждого слоя, а затем рассчитайте среднее значение слой за слоем.

Окончательный код

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

Если вы считаете, что эта статья полезна для вас, вы можете воспользоваться поддержкой генерации энергии ИИ.