Date and Time: Jul 23, 2024, 18:27 (EST)
Link: https://leetcode.com/problems/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]
Example 2:
Input: root = [4,2,7,1,3], val = 5
Output: [ ]
-
The number of nodes in the tree is in the range
[1, 5000]
. -
1 <= Node.val <= 10^7
-
root
is a binary search tree. -
1 <= val <= 10^7
Follow the property of BST and update cur
to be its left or right depends on cur.val
and val
.
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
cur = root
while cur:
if cur.val < val:
cur = cur.right
elif cur.val > val:
cur = cur.left
else:
return cur
return None
Time Complexity:
Space Complexity: