每日一题~二叉树中的搜索

题目链接: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);
        }
        
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值