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.
2. Implementation
(1) BFS
publicclassSolution {publicList<Double> averageOfLevels(TreeNode root) {List<Double> res =newArrayList<>();if (root ==null) {return res; }Queue<TreeNode> queue =newLinkedList<>();queue.add(root);while (!queue.isEmpty()) {double sum =0;int size =queue.size();for (int i =0; i < size; i++) {TreeNode curNode =queue.remove(); sum +=curNode.val;if (curNode.left!=null) {queue.add(curNode.left); }if (curNode.right!=null) {queue.add(curNode.right); } }res.add(sum / size); }return res; }}