Leetcode 树(102, 637)

637: 二叉树的层平均值
给定一个非空二叉树,返回一个由每层节点平均值组成的数组;
 
class Solution(object):
def averageOfLevels(self, root):
"""
:type root: TreeNode
:rtype: List[float]
实现方法:
设置两个数组,一个用于记录每层树的总和,一颗树记录每层树的节点个数;
"""
sum=[0.0 for i in range(1000)]
count=[0.0 for i in range(10000)] num=0
def all(root,num):
if root:
sum[num]=sum[num]+root.val
count[num]=1+count[num]
all(root.left,num+1)
all(root.right,num+1) all(root,num) res=[] for i in range(len(sum)):
if count[i]!=0:
res.append(sum[i]/count[i]) return res
注意上述的策略:
nums=[0.0 for i in range(100)]-------------[0.0,0.0........]
nums[i for i in range(100)]-----------------[0,1,2,3,4........99]
 
 
 
新定义一个函数,添加一个层数参数,如果目前答案的列表答案个数等于层数,那么当前层数的列表append新元素即可。
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
result=[] def all(root,level):
if root:
if len(result)<level+1:
result.append([])
result[level].append(root.val)
all(root.left,level+1)
all(root.right,level+1) all(root,0)
return result
上一篇:mac svn 更新到新版本1.8


下一篇:ClusterControl 强大免费数据管理工具