Given the root of a binary tree, return the average value of the nodes on each level in the form of an array. Answers within 10-5 of the actual answer will be accepted.
Input: root = [3,9,20,null,null,15,7] Output: [3.00000,14.50000,11.00000] 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].
defaverage_of_levels(root) result = [] queue = [root] while !queue.empty? sum = 0 size = queue.size size.times do node = queue.shift sum += node.val queue << node.left if node.left queue << node.right if node.right end result << sum.to_f / size end result end