本文主要是介绍Leetcode 637. 二叉树的层平均值-------python,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:
给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.
示例 1:
输入:
3
/ \
9 20
/ \
15 7
输出: [3, 14.5, 11]
解释:
第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].
解题思路:
二叉树的层次遍历,每一层求平均值。
代码实现:
# Definition for a binary tree node.
class TreeNode(object):def __init__(self, x):self.val = xself.left = Noneself.right = Noneclass Solution(object):def averageOfLevels(self, root):""":type root: TreeNode:rtype: List[List[int]]"""if(root == None):return []else:res = []queue = [root]while(len(queue) > 0):tempList = []for i in range(len(queue)):#里层for循环是对于每一个节点,都判断其左右孩子temp = queue.pop(0)tempList.append(temp.val)if(temp.left):queue.append(temp.left)if(temp.right):queue.append(temp.right)res.append(sum(tempList)/len(tempList))# result = []# for i in res:# temp = float(sum(i)/len(i))# result.append(temp)return resn1 = TreeNode(4)
n2 = TreeNode(2)
n3 = TreeNode(7)
n4 = TreeNode(1)
n5 = TreeNode(3)
n1.left = n2
n1.right = n3
n2.left = n4
n2.right = n5
s = Solution()
result = s.averageOfLevels(n1)
print(result)
这篇关于Leetcode 637. 二叉树的层平均值-------python的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!