题目链接
    给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。

    示例 1:
    QQ截图20220704204148.png

    1. 输入:root = [3,9,20,null,null,15,7]
    2. 输出:[3.00000,14.50000,11.00000]
    3. 解释:第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11 。
    4. 因此返回 [3, 14.5, 11] 。

    示例 2:
    QQ截图20220704204206.png

    输入:root = [3,9,20,15,7]
    输出:[3.00000,14.50000,11.00000]
    

    提示:

    • 树中节点数量在 [1, 104] 范围内
    • -231 <= Node.val <= 231 - 1
    /**
    * Definition for a binary tree node.
    * public class TreeNode {
    *     int val;
    *     TreeNode left;
    *     TreeNode right;
    *     TreeNode() {}
    *     TreeNode(int val) { this.val = val; }
    *     TreeNode(int val, TreeNode left, TreeNode right) {
    *         this.val = val;
    *         this.left = left;
    *         this.right = right;
    *     }
    * }
    */
    class Solution {
        public List<Double> averageOfLevels(TreeNode root) {
            List<Double> result = new ArrayList<>();
            if (root == null) {
                return result;
            }
            Deque<TreeNode> deque = new LinkedList<>();
            deque.offer(root);
            while (!deque.isEmpty()) {
                int size = deque.size();
                double sum = 0.0;
                for (int i = 0; i < size; i++) {
                    TreeNode temp = deque.peek();
                    deque.pop();
                    sum += temp.val;
                    if (temp.left!= null) {
                        deque.offer(temp.left);
                    }
                    if(temp.right != null) {
                        deque.offer(temp.right);
                    }
                }
                result.add(sum / size);
            }
            return result;
        }
    }