优化 0102.二叉树的层序遍历.md 中的 637.二叉树的层平均值 Python3解法

This commit is contained in:
Wen Liang 2021-09-03 08:36:36 +08:00
parent a21705d61a
commit fde18e8fdd
1 changed files with 19 additions and 22 deletions

View File

@ -633,32 +633,29 @@ python代码
```python
class Solution:
"""二叉树层平均值迭代解法"""
def averageOfLevels(self, root: TreeNode) -> List[float]:
results = []
if not root:
return []
return results
quene = deque([root])
out_list = []
while quene:
in_list = []
for _ in range(len(quene)):
node = quene.popleft()
in_list.append(node.val)
if node.left:
quene.append(node.left)
if node.right:
quene.append(node.right)
out_list.append(in_list)
out_list = map(lambda x: sum(x) / len(x), out_list)
return out_list
from collections import deque
que = deque([root])
# 执行用时56 ms, 在所有 Python3 提交中击败了81.48%的用户
# 内存消耗17 MB, 在所有 Python3 提交中击败了89.68%的用户
while que:
size = len(que)
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
```
java: