二叉树的层平均值
此博客链接: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; } }
我感觉代码么有问题,但是提交报错,报错信息如下:
出来混总是要还的