Erlo

637二叉树的层平均值

时间:2020-09-16   阅读:12次   来源:博客园
页面报错
点赞

class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
# 这道题还是很容易的,还是用深搜的办法,遍历每一层,定义两个列表,
# 一个用来计算每一层的和,另一个用来记每一层的个数。
from typing import List
class Solution:
def averageOfLevels(self, root: TreeNode) -> List[float]:
# 定义两个列表
self.rep = []
self.count = []
self.dfs(root,0)
# 求出每一层的平均值。
for i in range(len(self.rep)):
self.rep[i] = self.rep[i] / self.count[i]
return self.rep
# 定义递归函数
def dfs(self,root,depth):
# 如果节点为空,直接返回。
if not root:
return
# 这里判断的是函数是否是第一次走到这一层,
if len(self.rep) <= depth:
# 第一次的话需要先进行在列表中添加一个数据
self.rep.append(root.val)
self.count.append(1)
else:
# 不是第一次进入这一层的话,就在原有的基础上边加上对应的数。
self.rep[depth] += root.val
self.count[depth] += 1
self.dfs(root.left,depth + 1)
self.dfs(root.right,depth + 1)

提交留言

评论留言

还没有评论留言,赶紧来抢楼吧~~

吐槽小黑屋()

* 这里是“吐槽小黑屋”,所有人可看,只保留当天信息。

  • Erlo吐槽

    Erlo.vip2020-09-27 08:52:01Hello、欢迎使用吐槽小黑屋,这就是个吐槽的地方。
  • 返回顶部