Search in a Binary Search Tree

https://leetcode.com/explore/challenge/card/june-leetcoding-challenge/541/week-3-june-15th-june-21st/3361/

Recursive:

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

Iterative

class Solution:
    def searchBST(self, root: TreeNode, val: int) -> TreeNode:
        while root != None and root.val != val:
            if root.val < val:
                root = root.right
            else:
                root = root.left
        return root

Last updated

Was this helpful?