두 갈래 나무 Leetcode 637 두 갈래 나무의 층 평균치

1364 단어

제목


비공 두 갈래 나무를 정하고 각 층 노드의 평균값으로 구성된 그룹을 되돌려줍니다.
예 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

좋은 웹페이지 즐겨찾기