题目链接:700. 二叉搜索树中的搜索 - 力扣(LeetCode)
题目描述:
首先我们了解一下什么叫做二叉搜索树。
定义:二叉查找树,又被称为二叉搜索树。其特点如下:设 x 为二叉查找树中的一个结点,x 节点包含关键字 val,简单来说就是左孩子比父节点小,右孩子比父节点大,还有一个特性就是”中序遍历“可以让结点有序。
思路分析:
我们可以利用二叉树的性质来解决这道题,例子中所给的 val 是 2,2 小于 root.val,所以我们接下来再左子树中寻找符合条件的子树即可,如果说,val 大于 root.val 的话,那我们只需要在右子树中去寻找目标子树就可以了。注意如果 root 等于 null,说明树为空,或者我们已经找到底了,这时候直接返回 null 就行了。
代码示例:
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
if(root == null) return null;
if(root.val == val) {
return root;
}
if(root.val < val) {
return searchBST(root.right,val);
} else {
return searchBST(root.left,val);
}
}
}