Search in a Binary Search Tree — BST Property Navigation
Advertisement
Problem 358 · Search in a Binary Search Tree
Difficulty: Easy · Pattern: BST Navigation
Solutions
# Python — recursive
def searchBST(root, val):
if not root: return None
if root.val == val: return root
return searchBST(root.left if val < root.val else root.right, val)
# Iterative
def searchBST(root, val):
while root and root.val != val:
root = root.left if val < root.val else root.right
return root
// Java
public TreeNode searchBST(TreeNode root, int val) {
while (root!=null&&root.val!=val)
root=val<root.val?root.left:root.right;
return root;
}
Complexity
- Time: O(h) = O(log n) balanced
- Space: O(1) iterative
Advertisement