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.
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def averageOfLevels(self, root): """ :type root: TreeNode :rtype: List[float] """ if not root: return None else: ans=[] que=[root] while que: n=len(que) sum=0 for i in range(n): r=que.pop(0) sum+=r.val if r.left is not None: que.append(r.left) if r.right is not None: que.append(r.right) ans.append(sum/n) return ans