给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.
示例 1:
输入:
3
/ \
9 20
/ \
15 7
输出: [3, 14.5, 11]
解释:
第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree
1 import java.util.ArrayList; 2 import java.util.LinkedList; 3 import java.util.List; 4 import java.util.Queue; 5 6 public class AverageOfLevesInBinaryTree { 7 static class TreeNode { 8 int val; 9 TreeNode left; 10 TreeNode right; 11 TreeNode(int x) { 12 val = x; 13 } 14 } 15 16 public List<Double> averageOfLevels(TreeNode root) { 17 List<Double> res = new ArrayList<>(); 18 if(root == null) { 19 return res; 20 } 21 Queue<TreeNode> queue = new LinkedList<>(); 22 queue.add(root); 23 while(!queue.isEmpty()) { 24 int size = queue.size(); 25 double sum = 0; 26 for(int i = 0; i < size; i++) { 27 TreeNode temp = queue.remove(); 28 sum += temp.val; 29 if(temp.left != null) { 30 queue.add(temp.left); 31 } 32 if(temp.right != null) { 33 queue.add(temp.right); 34 } 35 } 36 res.add(sum / size); 37 } 38 return res; 39 } 40 }
原文:https://www.cnblogs.com/xiyangchen/p/11108332.html