Skip to content

Commit 947fd39

Browse files
committed
2641
1 parent d4508b5 commit 947fd39

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

Oct-23-24.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
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

0 commit comments

Comments
 (0)