给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.
示例 1:输入: 3 / \ 9 20 / \ 15 7输出: [3, 14.5, 11]解释:第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].注意: 节点值的范围在32位有符号整数范围内。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public ListaverageOfLevels(TreeNode root) { List doubles = new ArrayList<>(); if (root == null) return doubles; Queue queue = new LinkedList<>(); queue.add(root); while (!queue.isEmpty()) { int size = queue.size(); double ave = 0; for (int i = 0; i < size; i++) { TreeNode node = queue.poll(); if (node.left != null) queue.add(node.left); if (node.right != null) queue.add(node.right); ave += node.val; } ave = ave * 1.0d / size; doubles.add(ave); } return doubles; }}