给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。
示例 1: 提示:
节点值的范围在32位有符号整数范围内。
其实题是BFS模板题,直接默写就行,不过因为提示指定了范围,所以需要注意取值
public List<Double> averageOfLevels(TreeNode root) { Queue<TreeNode> queue = new LinkedList<>(); queue.add(root); List<Double> res = new LinkedList<>(); while (!queue.isEmpty()) { int n = queue.size(); double sum = 0;//这里类型不能写int for (int i = 0; i < n; i++) { TreeNode node = queue.poll(); sum += node.val; if (node.left != null) { queue.offer(node.left); } if (node.right != null) { queue.offer(node.right); } } double avg = sum / n; res.add(avg); } return res; }