Skip to content

Commit e65fb86

Browse files
committed
Time: 0 ms (100%), Space: 21.1 MB (36.34%) - LeetHub
1 parent 3964b45 commit e65fb86

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# time complexity: O(m+n)
2+
# space complexity: O(m+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 twoSumBSTs(self, root1: Optional[TreeNode], root2: Optional[TreeNode], target: int) -> bool:
15+
def traverse(node, nodeSet):
16+
if not node:
17+
return
18+
traverse(node.left, nodeSet)
19+
nodeSet.add(node.val)
20+
traverse(node.right, nodeSet)
21+
22+
nodeSet1 = set()
23+
nodeSet2 = set()
24+
traverse(root1, nodeSet1)
25+
traverse(root2, nodeSet2)
26+
for value in nodeSet1:
27+
if target - value in nodeSet2:
28+
return True
29+
return False
30+
31+
32+
root1 = TreeNode(2)
33+
root1.left = TreeNode(1)
34+
root1.right = TreeNode(4)
35+
root2 = TreeNode(1)
36+
root2.left = TreeNode(0)
37+
root2.right = TreeNode(3)
38+
target = 5
39+
print(Solution().twoSumBSTs(root1, root2, target))

0 commit comments

Comments
 (0)