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)的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 637. 二叉树的层平均值(Average of Levels in Binary Tree)
637. Average of Levels in Binary Tree(一棵树每层节点的平均数)(二叉树的层序遍历)