题目描述:
给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。
与实际答案相差 10-5 以内的答案可以被接受。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:[3.00000,14.50000,11.00000]
解释:第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11 。
因此返回 [3, 14.5, 11] 。
示例 2:
输入:root = [3,9,20,15,7]
输出:[3.00000,14.50000,11.00000]
var averageOfLevels = function(root) {
if (!root) {
return []
}
let res = []
let queue = [root]
while (queue.length) {
let length = queue.length;
let curLevel = []
for (let i = 0; i < length; i ++) {
let node = queue.shift()
curLevel.push(node.val)
node.left && queue.push(node.left)
node.right && queue.push(node.right)
}
res.push(getMeanValue(curLevel))
}
return res;
};
var getMeanValue = function(arr) {
var sum = 0;
for (let i = 0; i < arr.length; i ++) {
sum += arr[i]
}
return sum / arr.length
}
|