Программа курса:
Задача 3: Среднее значение уровней в двоичном дереве
Напишите определение функции average_of_levels(root), которая принимает корень бинарного дерева root и возвращает массив, где каждый элемент — это среднее значение узлов на соответствующем уровне дерева.
Для представления дерева используется объект класса TreeNode, определённый следующим образом:
class TreeNode(object):
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
! Этот объект скрытно заготовлен заранее в вашем коде.
Узел дерева TreeNode имеет три свойства:
val— значение узла (целое число);left— ссылка на левое поддерево;right— ссылка на правое поддерево.
В задаче дерево передаётся в виде объекта TreeNode. Ваша задача — рассчитать средние значения на каждом уровне дерева и вернуть их в виде массива. Результаты с точностью до 10^-5 считаются верными.
Примеры
Пример 1:
Ввод:root = [3,9,20,null,null,15,7]
(Дерево представлено в виде схемы):
3
/ \
9 20
/ \
15 7
Вызов:
average_of_levels(TreeNode(3, TreeNode(9), TreeNode(20, TreeNode(15), TreeNode(7))))
Вывод:[3.00000, 14.50000, 11.00000]
Объяснение:
- Уровень 0: Среднее значение
3. - Уровень 1: Среднее значение
(9 + 20) / 2 = 14.5. - Уровень 2: Среднее значение
(15 + 7) / 2 = 11.
Пример 2:
Ввод:root = [3,9,20,15,7]
(Дерево представлено в виде схемы):
3
/ \
9 20
/ \
15 7
Вызов:
average_of_levels(TreeNode(3, TreeNode(9, TreeNode(15), TreeNode(7)), TreeNode(20)))
Вывод:[3.00000, 14.50000, 11.00000]
Объяснение:
- Уровень 0: Среднее значение
3. - Уровень 1: Среднее значение
(9 + 20) / 2 = 14.5. - Уровень 2: Среднее значение
(15 + 7) / 2 = 11.