二叉树的层平均值

此博客链接:https://www.cnblogs.com/ping2yingshi/p/13656687.html

 二叉树的层平均值

题目链接:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree/

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

 

示例 1:

输入:
3
/ \
9 20
/ \
15 7
输出:[3, 14.5, 11]
解释:
第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。

题解:

        思路:利用队列,对树进行层次遍历,计算每层的平均值。

代码:

class Solution {
    public List<Double> averageOfLevels(TreeNode root) {
        // if(root.left==null||root.right==null)
        //     return root;
        Queue <TreeNode> queue=new LinkedList();
        List <Double> list=new LinkedList();
        queue.add(root);
        TreeNode temp;
        while(!queue.isEmpty()){
           double sum=0;
            int len=queue.size();
            for(int i=0;i<len;i++){
           
                temp = queue.poll();   
                sum += temp.val;   
              
                if(root.left!=null)
            {
                queue.add(temp.left);
            }
            if(root.right!=null)
            {
                queue.add(temp.right);
            }
            }
            list.add(sum/len);
            
        }
        return list;


    }
}

我感觉代码么有问题,但是提交报错,报错信息如下:

 

 


 

 

posted @ 2020-09-12 13:15  萍2樱释  阅读(213)  评论(1编辑  收藏  举报