637. Average of Levels in Binary Tree
Description
Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array.
Example 1:
Input: 3 / \ 9 20 / \ 15 7 Output: [3, 14.5, 11] Explanation: The average value of nodes on level 0 is 3, on level 1 is 14.5, and on level 2 is 11. Hence return [3, 14.5, 11].
Note:
- The range of node's value is in the range of 32-bit signed integer.
Solution
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* Traverse the binary tree with Breadth-First Search (BFS) algorithm
* @param {TreeNode} root
* @return {number[]}
*/
var averageOfLevels = function(root) {
"use strict";
let result = [];
let queue = [root];
while(queue.length) {
let sum = 0;
let len = queue.length;
for (let i = 0; i < len; i++) {
sum += queue[i].val;
if (queue[i].left) {
queue.push(queue[i].left);
}
if (queue[i].right) {
queue.push(queue[i].right);
}
}
result.push(sum / len);
queue = queue.slice(len);
}
return result;
};