题解 | #牛群平均重量#
牛群平均重量
https://www.nowcoder.com/practice/9b826d0a84034e8e8afd4c451f7d34e0
思路:
简单的层序遍历,记得计算平均值即可。
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return double浮点型一维数组 */ public double[] averageOfLevels (TreeNode root) { if(root == null) return new double[0]; if (root.left == null && root.right == null){ double arr[] = new double[1]; arr[0] = root.val; return arr; } Deque<TreeNode> deque = new LinkedList<>(); List<Double> res = new ArrayList<>(); deque.offer(root); while(!deque.isEmpty()){ int size = deque.size(); double sum = 0; for(int i=0;i<size;i++){ TreeNode node = deque.poll(); sum += node.val; if(node.left!=null) deque.offer(node.left); if(node.right!=null) deque.offer(node.right); } res.add(sum/size); } double arr2[] = new double[res.size()]; for(int i=0;i<res.size();i++) arr2[i] = res.get(i); return arr2; } }