Update 0102.二叉树的层序遍历.md

This commit is contained in:
jianghongcheng
2023-05-03 20:03:09 -05:00
committed by GitHub
parent 52092d0153
commit 95616fa9a8

View File

@ -1121,27 +1121,38 @@ python代码
class Solution: class Solution:
"""二叉树层平均值迭代解法""" """二叉树层平均值迭代解法"""
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def averageOfLevels(self, root: TreeNode) -> List[float]: def averageOfLevels(self, root: TreeNode) -> List[float]:
results = []
if not root: if not root:
return results return []
from collections import deque queue = collections.deque([root])
que = deque([root]) averages = []
while que: while queue:
size = len(que) size = len(queue)
sum_ = 0 level_sum = 0
for _ in range(size):
cur = que.popleft()
sum_ += cur.val
if cur.left:
que.append(cur.left)
if cur.right:
que.append(cur.right)
results.append(sum_ / size)
return results for i in range(size):
node = queue.popleft()
level_sum += node.val
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
averages.append(level_sum / size)
return averages
``` ```
java: java: