题目描述
给你一棵二叉树的根节点 root ,找出并返回满足要求的节点数,要求节点的值等于其 子树 中值的 平均值 。
注意:
n 个元素的平均值可以由 n 个元素 求和 然后再除以 n ,并 向下舍入 到最近的整数。
root 的 子树 由 root 和它的所有后代组成。
Coding
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def averageOfSubtree(self, root: Optional[TreeNode]) -> int:
cntNum=0
def dfs(node:TreeNode):
nonlocal cntNum
if node==None:
return 0,0
sum=node.val
s,cnt=dfs(node.left)
s2,cnt2=dfs(node.right)
Num=cnt+cnt2+1
sum+=s+s2
if sum//Num == node.val:
cntNum+=1
return sum,Num
dfs(root)
return cntNum
版权声明:本文为qq_36822894原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。