LeedCode二叉树的层平均值

题目

给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。

示例 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

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解及思路

源码


/**

* Definition for a binary tree node.

* public class TreeNode {

*    int val;

*    TreeNode left;

*    TreeNode right;

*    TreeNode(int x) { val = x; }

* }

*/

class Solution {

    public List averageOfLevels(TreeNode root) {

        List ret = new ArrayList<>();

        if(root==null)

            return ret;

        Queue eachLayer = new LinkedList<>();

        eachLayer.add(root);

        while(eachLayer.size()!=0){

            double sum = 0;

            int len = eachLayer.size();

            for(int i = 0;i

                TreeNode newNode = eachLayer.poll();

                sum += newNode.val;

                if(newNode.left!=null)

                    eachLayer.add(newNode.left);

                if(newNode.right!=null)

                    eachLayer.add(newNode.right);

            }

            ret.add(sum/len);

        }

        return ret;

    }

}

你可能感兴趣的:(LeedCode二叉树的层平均值)