码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树的层平均值

时间:2020-05-22 17:15:04      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:eve   示例   queue   ret   ble   new   solution   sum   node   

博客链接:https://www.cnblogs.com/ping2yingshi/p/12938065.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].

题解:

         思路:

                  1.定义一个数组和一个队列。

                  2.把每层上的节点存入到队列中。

                  3.记录每层节点个数。

                  4.取出列表中每层节点的数。

                  5.对每层节点求和。

                  6.判断每层节点的左子树和右子树是否为空,不为空,把左右子树加入到队列中。作为新的一层节点数。

代码如下:

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

 

二叉树的层平均值

标签:eve   示例   queue   ret   ble   new   solution   sum   node   

原文地址:https://www.cnblogs.com/ping2yingshi/p/12938065.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!