[LEETCODE] 98: Validate Binary Search Tree(Python)

박나현·2024년 5월 7일

Validate Binary Search Tree - LeetCode

문제 설명

주어진 트리가 올바른 이진 탐색 트리인지 확인해보자.

나의 풀이

# 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
import sys
class Solution:
    def isValidBST(self, root: Optional[TreeNode]) -> bool:
        def func(root,minV,maxV):
            if root is None:
                return True
            
            return (minV<root.val<maxV and func(root.left,minV,root.val) and func(root.right,root.val,maxV))

        return func(root,(-1)*sys.maxsize,sys.maxsize)

minV, maxV를 업데이트해가면서 재귀 호출을 통해 확인하면 된다.

시간복잡도

모든 노드를 탐색하기 때문에 O(n)이다.

profile
의견을 가지고 학습하기, 질문하기, 궁금했던 주제에 대해 학습하는 것을 미루지 않기

0개의 댓글