题目描述:
LeetCode 637. Average of Levels in Binary Tree
Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array.
Example 1:
Input: 3 / \ 9 20 / \ 15 7 Output: [3, 14.5, 11] Explanation: The average value of nodes on level 0 is 3, on level 1 is 14.5, and on level 2 is 11. Hence return [3, 14.5, 11].
Note:
- The range of node's value is in the range of 32-bit signed integer.
题目大意:
求二叉树每层节点的均值
解题思路:
二叉树层次遍历
Python代码:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def averageOfLevels(self, root):
"""
:type root: TreeNode
:rtype: List[float]
"""
ans = []
que = [root]
while que:
ans.append(1.0 * sum([n.val for n in que]) / len(que))
nque = []
for n in que:
if n.left: nque.append(n.left)
if n.right: nque.append(n.right)
que = nque
return ans
本文链接:http://bookshadow.com/weblog/2017/07/09/leetcode-average-of-levels-in-binary-tree/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。