二叉搜索树中的搜索
给定二叉搜索树(BST)的根节点root和一个整数值val。
你需要在BST中找到节点值等于val的节点。 返回以该节点为根的子树。 如果节点不存在,则返回null。
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
//如果当前节点为空,直接返回null
if(root==null){
return null;
}
//如果目标值大于当前节点,则去右子树查找(退出了当前递归的函数)
else if(root.val<val){
return searchBST(root.right,val);
}
//如果目标值小于当前节点,则去左子树查找(退出了当前递归的函数)
else if(root.val>val){
return searchBST(root.left,val);
}
//如果目标值等于当前节点,则直接返回该节点
else{
return root;
}
}
}
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;
}
}