leetcode 637. 두 갈래 나무의 층 평균치

1046 단어 Leetcode
비공 두 갈래 나무를 정하고 각 층 노드의 평균값으로 구성된 그룹을 되돌려줍니다.
예 1:
 :
    3
   / \
  9  20
    /  \
   15   7
 : [3, 14.5, 11]
 :
 0  3,   1  14.5,  2  11.   [3, 14.5, 11].

참고:
  • 노드 값의 범위는 32비트 기호 정수 범위 내에..
  • # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    from collections import deque #deque , 
    class Solution(object):
        def averageOfLevels(self, root):
            """
            :type root: TreeNode
            :rtype: List[float]
            """
            ans = []
            queue = deque([root])
            while queue:
                s = 0
                n = len(queue)
                for _ in range(n):
                    top = queue.popleft()
                    s += top.val
                    if top.left:
                        queue.append(top.left)
                    if top.right:
                        queue.append(top.right)
                ans.append(float(s) / n)
            return ans

    좋은 웹페이지 즐겨찾기