job 인터뷰/코테(Matroid) 준비

BST: 700. Search in a Binary Search Tree

hyunkookim 2024. 11. 17. 18:09

700. Search in a Binary Search Tree

 

# 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]:
        # node.val == val 인 node return

        cur = root

        while cur:
            if cur.val == val:
                return cur
            elif cur.val < val: # 현재 값 < 검색값 이면, 오른쪽으로
                cur = cur.right
            else: # 현재 값 > 검색값 이면 => 검색값 < 현재값 이면, 왼쪽으로
                cur = cur.left

        # 루프 돌아도 없으면, 존재 안하므로.
        return None # 명시적으로 적는 것이 더 나음, 안적어도, 기본으로 return None 함. c++에서 return 0 하듯이.