Leetcode637. 二叉树的层平均值
题目:
给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。
输入:
3
/ \
9 20
/ \
15 7
输出:[3, 14.5, 11]
解释:
第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。
题解:
public static List<Double> averageOfLevels(TreeNode root) {
List<Double> list = new ArrayList<>();
if(root==null) return list;
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
while (!queue.isEmpty()){
double sum=0;
int size =queue.size();
for(int i =0;i<size;i++){
TreeNode node = queue.poll();
sum += node.value;
if(node.left!=null){
queue.add(node.left);
}
if(node.right!=null){
queue.add(node.right);
}
}
list.add(sum/size);
}
return list;
}
本文介绍了一种计算二叉树各层节点平均值的方法,并提供了一个具体的Java实现示例。通过广度优先搜索遍历二叉树,逐层计算节点值的平均数。
680

被折叠的 条评论
为什么被折叠?



