1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| class Solution { List<Double> result = new ArrayList<>();
public List<Double> averageOfLevels(TreeNode root) { LinkedList<TreeNode> queue = new LinkedList<TreeNode>(); queue.add(root); while (!queue.isEmpty()) { long sum = 0; int size = queue.size(); for (int i = 0; i < size; i++) { TreeNode node = queue.poll(); sum += node.val; if (i == size - 1) { result.add((double)sum / size); }
if (node.left != null) { queue.offer(node.left); }
if (node.right != null) { queue.offer(node.right); } } } return result; } }
|