📅  最后修改于: 2023-12-03 14:56:53.221000             🧑  作者: Mango
给定一颗二叉树,现在需要计算每个节点的子树深度总和。
使用递归进行遍历,对于每个节点,求它的左右子树深度,并将其加入到该节点的值中。然后递归到左右子节点继续计算。最终,根节点的值即为二叉树每个节点子树深度总和。
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def subtreeSum(self, root: TreeNode) -> int:
def dfs(node: TreeNode) -> int:
if not node:
return 0
left_depth = dfs(node.left)
right_depth = dfs(node.right)
node.val += left_depth + right_depth
return node.val
dfs(root)
return root.val