力扣 700. 二叉搜索树中的搜索

题目

给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。

例如,
给定二叉搜索树:

    4
   / \
  2   7
 / \
1   3

和值: 2
你应该返回如下子树:

  2     
 / \   
1   3

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-in-a-binary-search-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

方法1

递归。
利用搜索二叉树的性质进行二分查找啊喵。
1、调用自身方法要加self
2、return!!

Python实现
class Solution:
    def searchBST(self, root: TreeNode, val: int) -> TreeNode:
        if root==None: return None
        if root.val==val: return root
        elif root.val>val: return self.searchBST(root.left,val)
        elif root.val<val: return self.searchBST(root.right,val)

力扣 700. 二叉搜索树中的搜索_第1张图片

Java实现
class Solution {
    public TreeNode searchBST(TreeNode root, int val) {
        //base case 
        if (root == null) return null;

        if (root.val > val) return searchBST(root.left, val);
        else if (root.val < val) return searchBST(root.right, val);
        else return root;

    }
}

力扣 700. 二叉搜索树中的搜索_第2张图片

你可能感兴趣的:(力扣,leetcode,算法,python)