1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| class Solution: def distributeCoins(self, root: Optional[TreeNode]) -> int: self.res=0 def dfs(node:TreeNode): if node==None: return 0 left=dfs(node.left) right=dfs(node.right) self.res+=abs(left)+abs(right) return right+left+node.val-1 dfs(root) return self.res class Solution { public: int res=0; int dfs(TreeNode* root){ if (!root) return 0; int left=dfs(root->left); int right=dfs(root->right); res+=abs(left)+abs(right); return left+right+root->val-1; } int distributeCoins(TreeNode* root) { dfs(root); return res; } };
|