给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。
案例 1:
输入:
5
/ \
3 6
/ \ \
2 4 7
Target = 9
输出: True
案例 2:
输入:
5
/ \
3 6
/ \ \
2 4 7
Target = 28
输出: False
python
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def dfs(self,root,dic):
if root:
dic[root.val]=1
self.dfs(root.left,dic)
self.dfs(root.right,dic)
def findTarget(self, root: TreeNode, k: int) -> bool:
dic={}
self.dfs(root,dic)
if len(dic)<2:
return False
for key in dic:
if k-key in dic and key!=k-key:
return True
return False