700. Search in a binary search tree

You are given the root of a binary search tree (BST) and an integer val. Find the node in the BST that the node’s value equals val and return the subtree rooted with that node. If such a node does not exist, return null.

Example 1:

Input: root = [4,2,7,1,3], val = 2 Output: [2,1,3]

  • code
class Solution:
    def searchBST(self, root: TreeNode, val: int) -> TreeNode:

        def rec(root):
            if root:
                if root.val == val: return root
                elif root.val < val: return rec(root.right)
                return rec(root.left)
        
        return rec(root)
  • code
class Solution:
    def searchBST(self, root: TreeNode, val: int) -> TreeNode:

        while root:
            if root.val == val:
                return root
            elif root.val < val:
                root = root.right
            else:
                root = root.left

        return None