classSolution{ public List<Double> averageOfLevels(TreeNode root){ List<Double> result = new ArrayList<>(); Queue<TreeNode> queue = new LinkedList<>(); queue.add(root);
while (!queue.isEmpty()) { Double temp = 0.0; int len = queue.size(); for (int i = 0; i < len; i++) { TreeNode node = queue.poll(); temp += node.val; if (node.left != null) { queue.add(node.left); } if (node.right != null) { queue.add(node.right); } } result.add(temp / len); } return result; } }