Java
class Solution {
public boolean findTarget(TreeNode root, int k) {
HashSet<Integer> set=new HashSet<>();
return fds(root,set,k);
}
public boolean fds(TreeNode root,HashSet<Integer> set,int k){
if(root==null) return false;
if(set.contains(k-root.val)) return true;//.contains(n),set里是否包含n
set.add(root.val);
return fds(root.left,set,k)||fds(root.right,set,k);
}
}
Python
class Solution:
def findTarget(self, root, k):
"""
:type root: TreeNode
:type k: int
:rtype: bool
"""
l=[]
return self.fbs(root,l,k)
def fbs(self,root,l,k):
if root is None:
return False
if k-root.val in l:
return True
l.append(root.val)
return self.fbs(root.left,l,k) or self.fbs(root.right,l,k)