diff --git a/validate-bintree.py b/validate-bintree.py new file mode 100644 index 0000000..3df471c --- /dev/null +++ b/validate-bintree.py @@ -0,0 +1,19 @@ +class Solution: + def isValidBST(self, root: Optional[TreeNode]) -> bool: + return self.traverse(root, [], []) + + def traverse(self, root: Optional[TreeNode], gt: List[int], lt: List[int]) -> bool: + left = True + right = True + for item in lt: + if root.val >= item: + return False + for item in gt: + if root.val <= item: + return False + + if root.left != None: + left = self.traverse(root.left, gt, lt + [root.val]) + if root.right != None: + right = self.traverse(root.right, gt + [root.val], lt) + return left and right