首页 > 其他 > 详细

【leetcode】637. 二叉树的层平均值

时间:2020-04-23 00:52:54      阅读:68      评论:0      收藏:0      [点我收藏+]

题目描述:

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

示例 1:

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

分析:

了解输入是什么样的?

TreeNode{val: 3, left: TreeNode{val: 9, left: TreeNode{val: 15, left: None, right: None}, right: TreeNode{val: 7, left: None, right: None}}, right: TreeNode{val: 20, left: None, right: None}}
发现是一个根节点的val,和左右子树
那么只要取出当前层所有的val即可
解题:
class Solution:
    def averageOfLevels(self, root: TreeNode) -> List[float]:
        cur_layer = [root]
        res=[]
        while(cur_layer):
            n=len(cur_layer)
            temp=[]
            sumT=0
            for i in cur_layer:
                sumT += i.val
                if(i.left):
                    temp.append(i.left)
                if(i.right):
                    temp.append(i.right)
            cur_layer = temp
            res.append(sumT/n)
        return(res)

 

 

【leetcode】637. 二叉树的层平均值

原文:https://www.cnblogs.com/fuj905/p/12757655.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!