From 547dcdf34e742bbe26f201f6e6a9b96fe6173447 Mon Sep 17 00:00:00 2001 From: Gabriel Donnan <47415809+gabedonnan@users.noreply.github.com> Date: Wed, 25 Jan 2023 12:11:57 +0000 Subject: [PATCH] Create validate-bintree.py --- validate-bintree.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 validate-bintree.py 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