题目描述:

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

示例 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)

 

 

相关文章:

  • 2021-06-01
  • 2022-12-23
  • 2022-12-23
  • 2021-05-24
  • 2021-04-09
  • 2022-12-23
  • 2022-12-23
  • 2021-07-17
猜你喜欢
  • 2021-11-17
  • 2022-12-23
  • 2021-04-27
  • 2022-02-06
  • 2021-11-08
  • 2021-08-12
相关资源
相似解决方案