思路
先进行层序遍历获取到每一层的值,层序遍历的方法参考:二叉树的层序遍历
我们可以在层序遍历的时候进行当前层次的求和操作,获取到当前层的总和,由于在层序遍历前已经获取到当前层的长度,所以最后将sum除len可得到当前层的平均值
实现
var averageOfLevels = function(root) {
if(!root) return []
let queue = [root], result = []
while(queue.length){
let len = queue.length;
let sum = 0;
for(let i = 0; i < len;i++){
const node = queue.shift();
node.left && queue.push(node.left)
node.right && queue.push(node.right)
sum += node.val;
}
result.push(sum / len)
}
return result;
};