二叉搜索树中两个节点之和
给定一个二叉搜索树的根节点root和一个整数k,请判断该二叉搜索树中是否存在两个节点它们的值之和等于k。假设二叉搜索树中节点的值均唯一。
小刘解题
对于递归函数来说,如果递归函数在return位置,那么在每次执行后就会跳出此次函数层,进入下一层,下一层的返回结果就是最终结果而不是上层里面某个位置的值。
class Solution {
public HashSet<Integer> hashSet = new HashSet<>();
public boolean findTarget(TreeNode root, int k) {
if(root==null){
return false;
}
if(hashSet.contains(k- root.val)){
return true;
}
else {
hashSet.add(root.val);
return findTarget(root.left,k)||findTarget(root.right,k);
}
}
}
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
|