题目:原题链接(中等)
标签:树、二叉树、二叉搜索树
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( l o g 2 N ) O(log^2N) O(log2N) | O ( l o g 2 N ) O(log^2N) O(log2N) | 超出时间限制 |
Ans 2 (Python) | O ( N 1 + N 2 ) O(N1+N2) O(N1+N2) | O ( N 1 + N 2 ) O(N1+N2) O(N1+N2) | 100ms (68.75%) |
Ans 3 (Python) |
解法一:
class Solution:
def inorder(self, node, lst):
if node:
self.inorder(node.left, lst)
lst.append(node.val)
self.inorder(node.right, lst)
def twoSumBSTs(self, root1: TreeNode, root2: TreeNode, target: int) -> bool:
lst1, lst2 = [], []
self.inorder(root1, lst1)
self.inorder(root2, lst2)
s1, s2 = len(lst1), len(lst2)
i1, i2 = 0, s2 - 1
while i1 < s1 and i2 >= 0:
val = lst1[i1] + lst2[i2]
if val < target:
i1 += 1
elif val > target:
i2 -= 1
else:
return True
return False