637. 二叉树的层平均值(Python)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了637. 二叉树的层平均值(Python)相关的知识,希望对你有一定的参考价值。

参考技术A

难度:★★☆☆☆
类型:树

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

注意 :节点值的范围在32位有符号整数范围内。

输入:

输出: [3, 14.5, 11]
解释:
第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].

这道题实际上是二叉树的层次遍历,计算每一层的结点均值即可。

如有疑问或建议,欢迎评论区留言~

二叉树的层平均值

博客链接: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;
    }
}

 

以上是关于637. 二叉树的层平均值(Python)的主要内容,如果未能解决你的问题,请参考以下文章

每日一扣637. 二叉树的层平均值

637. 二叉树的层平均值

LeetCode 637. 二叉树的层平均值(Average of Levels in Binary Tree)

637. Average of Levels in Binary Tree(一棵树每层节点的平均数)(二叉树的层序遍历)

二叉树层序遍历集合

637.二叉树的平均值