Skip to content

Commit 732ffc2

Browse files
committed
663. Equal Tree Partition
1 parent 85bf4ea commit 732ffc2

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

663 Equal Tree Partition.py

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,33 @@ def __init__(self, x):
1313

1414
class Solution:
1515
def __init__(self):
16+
self.sums = []
17+
18+
def checkEqualTree(self, root: TreeNode) -> bool:
19+
"""
20+
To save 2nd pass, store sums
21+
space: O(N)
22+
"""
23+
self.dfs(root)
24+
total = self.sums.pop()
25+
return total % 2 == 0 and total // 2 in self.sums
26+
27+
def dfs(self, node):
28+
if not node:
29+
return 0
30+
31+
l = self.dfs(node.left)
32+
r = self.dfs(node.right)
33+
s = l + r + node.val
34+
self.sums.append(s)
35+
return s
36+
37+
38+
class Solution:
39+
def __init__(self):
40+
"""
41+
Save space, two passes
42+
"""
1643
self.exists = False
1744
self.root = None # need to handle 0
1845
self.total_sum = None
@@ -24,7 +51,7 @@ def checkEqualTree(self, root: TreeNode) -> bool:
2451
2nd pass, check whether has sum/2
2552
space: O(log N)
2653
27-
two save 2nd pass, store sums
54+
To save 2nd pass, store sums
2855
space: O(N)
2956
"""
3057
self.root = root

0 commit comments

Comments
 (0)