题目描述:
给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.
示例 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)