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

题目链接:700. 二叉搜索树中的搜索 - 力扣(LeetCode)

题目描述:

每日一题~二叉树中的搜索_第1张图片

首先我们了解一下什么叫做二叉搜索树。

定义:二叉查找树,又被称为二叉搜索树。其特点如下:设 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);
        }
        
    }
}

你可能感兴趣的:(每日一题,算法,java-ee)