Scribbling

LeetCode: 98. Validate Binary Search Tree 본문

Computer Science/Coding Test

LeetCode: 98. Validate Binary Search Tree

focalpoint 2021. 10. 9. 17:20

Binary Search Tree의 Validation 문제이다.

BST 특성상 아래와 같이 순회하면 정렬된다는 특성을 이용한다.

즉, 순회하면서 점점 value가 커지는지만 체크하면 끝.

 

# 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 isValidBST(self, root: Optional[TreeNode]) -> bool:
        self.reg = -pow(2, 31) - 1
        return self.dfs(root)
    
    def dfs(self, node):
        if node.left != None:
            if not self.dfs(node.left):
                return False
        if node.val <= self.reg:
            return False
        else:
            self.reg = node.val
        if node.right != None:
            if not self.dfs(node.right):
                return False
        return True

 

'Computer Science > Coding Test' 카테고리의 다른 글

LeetCode: 90. Subsets II  (0) 2021.10.10
LeetCode: 88. Merge Sorted Array  (0) 2021.10.09
LeetCode: 99. Recover Binary Search Tree  (0) 2021.10.08
LeetCode: 89. Gray Code  (0) 2021.10.08
LeetCode: 126. Word Ladder II  (0) 2021.10.06