미소를뿌리는감자의 코딩

[leetcode 2024/02/17] 700. Search in a Binary Search Tree 본문

코딩 테스트/leetcode

[leetcode 2024/02/17] 700. Search in a Binary Search Tree

미뿌감 2024. 2. 17. 21:15
728x90

https://leetcode.com/problems/search-in-a-binary-search-tree/description/

 

LeetCode - The World's Leading Online Programming Learning Platform

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

1. 접근 방법

이번 문제는 특정 노드를 반환하는 노드라고 해석할 수 있을 것 같다.

val 이 주어졌을 때, 해당 val을 node.val 로 가지는 노드를 찾아, 그 노드를 반환하면 된다.

 

이진 탐색 트리에서 특정 노드가 삽입 될 때, 제 자리를 찾아가는 느낌으로 코드를 작성하였다.

만약

node.val == value 라면, 해당 노드 반환

node.val < value 이면, 오른쪽 노드로 이동.

node.val > value 이면, 왼쪽 노드로 이동하게 만들었다.

 

2. 코드

# 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]:

        def find_node(node, value):
            if node is None:
                return
            if value == node.val:
                return node
            elif node.val > value:
                return find_node(node.left, value)
            return find_node(node.right, value)

        return find_node(root, val)
728x90