二叉树 Leetcode 637 二叉树的层平均值

题目

给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.

示例 1:

输入:
3
/
9 20
/
15 7
输出: [3, 14.5, 11]
解释:
第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].
注意:

节点值的范围在32位有符号整数范围内。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/average-of-levels-in-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

同 https://www.jianshu.com/p/c8e66c3385fd

代码

# 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]
        """
        if not root:
            return []
        
        stack = [root]
        res = []
        
        while stack:
            temp = []
            avg = 0.0
            
            for node in stack:
                avg += node.val
                
                if node.left:
                    temp.append(node.left)
                    
                if node.right:
                    temp.append(node.right)
            avg = avg / len(stack)
            stack = temp
            res.append(avg)
            
        return res

你可能感兴趣的:(二叉树 Leetcode 637 二叉树的层平均值)