二叉树的层平均值
- 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:[3.00000,14.50000,11.00000]
解释:第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11 。
因此返回 [3, 14.5, 11] 。
解题思路
广度优先搜索 (BFS):
- 使用队列来实现BFS,从根节点开始,逐层遍历二叉树。
逐层处理:
- 在遍历每一层时,记录当前层的节点数量,计算当前层节点值的总和,然后计算平均值。
存储结果:
- 将每层的平均值存储在一个列表中,最终返回这个列表。
Java实现
public class AverageOfLevels {
public static class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x; }
}
public List<Double> averageOfLevels(