File tree Expand file tree Collapse file tree 1 file changed +30
-0
lines changed
Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution :
2+ def replaceValueInTree (self , root : Optional [TreeNode ]) -> Optional [TreeNode ]:
3+ q = deque ([])
4+ parentHash = defaultdict (TreeNode )
5+ sumHash = defaultdict (int )
6+ q .append (root )
7+ parentHash [id (root )] = TreeNode (0 )
8+ while q :
9+ numOfChildren = len (q )
10+ levelSum = 0
11+ tempq = deque ([])
12+ for child in range (numOfChildren ):
13+ node = q .popleft ()
14+ tempq .append (node )
15+ levelSum += node .val
16+ nodeChildSum = 0
17+ if node .left :
18+ parentHash [id (node .left )] = node
19+ q .append (node .left )
20+ nodeChildSum += node .left .val
21+ if node .right :
22+ parentHash [id (node .right )] = node
23+ q .append (node .right )
24+ nodeChildSum += node .right .val
25+ sumHash [id (node )] = nodeChildSum
26+ while tempq :
27+ node = tempq .popleft ()
28+ node .val = levelSum - sumHash [id (parentHash [id (node )])]
29+ root .val = 0
30+ return root
You can’t perform that action at this time.
0 commit comments