Skip to content

Commit 61fb5db

Browse files
committed
Time: 36 ms (70.96%), Space: 16.5 MB (38.65%) - LeetHub
1 parent 7b3e2de commit 61fb5db

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# time complexity: O(n)
2+
# space complexity: O(n)
3+
from typing import Optional
4+
5+
6+
class TreeNode:
7+
def __init__(self, val=0, left=None, right=None):
8+
self.val = val
9+
self.left = left
10+
self.right = right
11+
12+
13+
class Solution:
14+
def distributeCoins(self, root: Optional[TreeNode]) -> int:
15+
self.moves = 0
16+
17+
def dfs(node: Optional[TreeNode]):
18+
if not node:
19+
return 0
20+
leftBal = dfs(node.left)
21+
rightBal = dfs(node.right)
22+
self.moves += abs(leftBal) + abs(rightBal)
23+
return node.val + leftBal + rightBal - 1
24+
dfs(root)
25+
return self.moves
26+
27+
28+
root = TreeNode(3)
29+
root.left = TreeNode(0)
30+
root.right = TreeNode(0)
31+
print(Solution().distributeCoins(root))

0 commit comments

Comments
 (0)