Сложность: easy
Учитывая корень бинарного дерева, верните среднее значение узлов на каждом уровне в виде массива. Принимаются ответы в пределах 10-5 от фактического ответа.
Пример:
Input: root = [3,9,20,null,null,15,7]
Output: [3.00000,14.50000,11.00000]
👨💻 Алгоритм:
1⃣Обход дерева
Используйте обход в ширину (BFS) для обхода каждого уровня дерева.
2⃣Подсчет среднего значения
Для каждого уровня дерева подсчитайте сумму значений узлов и количество узлов, чтобы вычислить среднее значение.
3⃣Сохранение результата
Сохраните среднее значение каждого уровня в массив и верните его.
😎 Решение:
var averageOfLevels = function(root) {
let result = [];
let queue = [root];
while (queue.length > 0) {
let levelSum = 0;
let levelCount = queue.length;
for (let i = 0; i < levelCount; i++) {
let node = queue.shift();
levelSum += node.val;
if (node.left) queue.push(node.left);
if (node.right) queue.push(node.right);
}
result.push(levelSum / levelCount);
}
return result;
};Ставь 👍 и забирай 📚 Базу знаний
