From 57866cfa7f05b731d3c016d0865208ebfbb5295f Mon Sep 17 00:00:00 2001 From: Shakthi Nandana Date: Mon, 27 Apr 2026 22:28:52 -0400 Subject: [PATCH 1/5] validate bst solution --- validbst.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 validbst.py diff --git a/validbst.py b/validbst.py new file mode 100644 index 00000000..b97f0cb9 --- /dev/null +++ b/validbst.py @@ -0,0 +1,34 @@ +# Time Complexity: O(n) +# Space Complexity: O(n) +# Did this code successfully run on Leetcode : Yes + +# Definition for a binary tree node. +# class TreeNode(object): +# def __init__(self, val=0, left=None, right=None): +# self.val = val +# self.left = left +# self.right = right + +class Solution(object): + def isValidBST(self, root): + """ + :type root: Optional[TreeNode] + :rtype: bool + """ + + self.flag=True + self.prev= None + + def helper(root): + if root == None: + return + helper(root.left) + if self.prev!=None and root.val<=self.prev.val: + self.flag=False + self.prev=root + helper(root.right) + + + helper(root) + return self.flag + \ No newline at end of file From 28b5defa56a3974a244725d398ed019ba21627f0 Mon Sep 17 00:00:00 2001 From: Shakthi Nandana Date: Mon, 27 Apr 2026 22:48:16 -0400 Subject: [PATCH 2/5] renamed file --- problem1.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 problem1.py diff --git a/problem1.py b/problem1.py new file mode 100644 index 00000000..b97f0cb9 --- /dev/null +++ b/problem1.py @@ -0,0 +1,34 @@ +# Time Complexity: O(n) +# Space Complexity: O(n) +# Did this code successfully run on Leetcode : Yes + +# Definition for a binary tree node. +# class TreeNode(object): +# def __init__(self, val=0, left=None, right=None): +# self.val = val +# self.left = left +# self.right = right + +class Solution(object): + def isValidBST(self, root): + """ + :type root: Optional[TreeNode] + :rtype: bool + """ + + self.flag=True + self.prev= None + + def helper(root): + if root == None: + return + helper(root.left) + if self.prev!=None and root.val<=self.prev.val: + self.flag=False + self.prev=root + helper(root.right) + + + helper(root) + return self.flag + \ No newline at end of file From 33e4724205a1be9f214bb6421f3f2a335599d92f Mon Sep 17 00:00:00 2001 From: Shakthi Nandana Date: Mon, 27 Apr 2026 22:48:28 -0400 Subject: [PATCH 3/5] renaming file --- validbst.py | 34 ---------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 validbst.py diff --git a/validbst.py b/validbst.py deleted file mode 100644 index b97f0cb9..00000000 --- a/validbst.py +++ /dev/null @@ -1,34 +0,0 @@ -# Time Complexity: O(n) -# Space Complexity: O(n) -# Did this code successfully run on Leetcode : Yes - -# Definition for a binary tree node. -# class TreeNode(object): -# def __init__(self, val=0, left=None, right=None): -# self.val = val -# self.left = left -# self.right = right - -class Solution(object): - def isValidBST(self, root): - """ - :type root: Optional[TreeNode] - :rtype: bool - """ - - self.flag=True - self.prev= None - - def helper(root): - if root == None: - return - helper(root.left) - if self.prev!=None and root.val<=self.prev.val: - self.flag=False - self.prev=root - helper(root.right) - - - helper(root) - return self.flag - \ No newline at end of file From 2e04a0d94a3cb3139896813c9539836eead7f8f6 Mon Sep 17 00:00:00 2001 From: Shakthi Nandana Date: Wed, 29 Apr 2026 21:52:26 -0400 Subject: [PATCH 4/5] solutions --- build_with_postorder_inorder.py | 37 +++++++++++++++++++++++++++++++++ build_with_preorder_inorder.py | 37 +++++++++++++++++++++++++++++++++ problem1.py => validate_bst.py | 0 3 files changed, 74 insertions(+) create mode 100644 build_with_postorder_inorder.py create mode 100644 build_with_preorder_inorder.py rename problem1.py => validate_bst.py (100%) diff --git a/build_with_postorder_inorder.py b/build_with_postorder_inorder.py new file mode 100644 index 00000000..e74ae560 --- /dev/null +++ b/build_with_postorder_inorder.py @@ -0,0 +1,37 @@ +# Time Complexity: O(n) +# Space Complexity: O(n) +# Did this code successfully run on Leetcode : Yes + +# Definition for a binary tree node. +class TreeNode(object): + def __init__(self, val=0, left=None, right=None): + self.val = val + self.left = left + self.right = right +class Solution(object): + def buildTree(self, inorder, postorder): + """ + :type inorder: List[int] + :type postorder: List[int] + :rtype: Optional[TreeNode] + """ + hmap={} + self.rootindex=len(postorder)-1 + for i in range(len(inorder)): + hmap[inorder[i]]=i + + def helper(in_st,in_end): + if (in_st>in_end): + return None + + rootval=postorder[self.rootindex] + in_root_idx=hmap[rootval] + root = TreeNode(rootval) + self.rootindex-=1 + root.right = helper(in_root_idx+1,in_end) + root.left = helper(in_st,in_root_idx-1) + + return root + + + return helper(0,len(postorder)-1) \ No newline at end of file diff --git a/build_with_preorder_inorder.py b/build_with_preorder_inorder.py new file mode 100644 index 00000000..3264fd79 --- /dev/null +++ b/build_with_preorder_inorder.py @@ -0,0 +1,37 @@ +# Time Complexity: O(n) +# Space Complexity: O(n) +# Did this code successfully run on Leetcode : Yes + +# Definition for a binary tree node. +class TreeNode(object): + def __init__(self, val=0, left=None, right=None): + self.val = val + self.left = left + self.right = right +class Solution(object): + def buildTree(self, preorder, inorder): + """ + :type preorder: List[int] + :type inorder: List[int] + :rtype: Optional[TreeNode] + """ + hmap={} + self.rootindex=0 + for i in range(len(inorder)): + hmap[inorder[i]]=i + + def helper(in_st,in_end): + if (in_st>in_end): + return None + + rootval=preorder[self.rootindex] + in_root_idx=hmap[rootval] + root = TreeNode(rootval) + self.rootindex+=1 + root.left = helper(in_st,in_root_idx-1) + root.right = helper(in_root_idx+1,in_end) + + return root + + + return helper(0,len(preorder)-1) \ No newline at end of file diff --git a/problem1.py b/validate_bst.py similarity index 100% rename from problem1.py rename to validate_bst.py From 2b40f4251414fdffbacc8209ab5a510c6f8b06c1 Mon Sep 17 00:00:00 2001 From: Shakthi Nandana Date: Wed, 29 Apr 2026 23:10:36 -0400 Subject: [PATCH 5/5] Update --- build_with_postorder_inorder.py | 37 --------------------------------- 1 file changed, 37 deletions(-) delete mode 100644 build_with_postorder_inorder.py diff --git a/build_with_postorder_inorder.py b/build_with_postorder_inorder.py deleted file mode 100644 index e74ae560..00000000 --- a/build_with_postorder_inorder.py +++ /dev/null @@ -1,37 +0,0 @@ -# Time Complexity: O(n) -# Space Complexity: O(n) -# Did this code successfully run on Leetcode : Yes - -# Definition for a binary tree node. -class TreeNode(object): - def __init__(self, val=0, left=None, right=None): - self.val = val - self.left = left - self.right = right -class Solution(object): - def buildTree(self, inorder, postorder): - """ - :type inorder: List[int] - :type postorder: List[int] - :rtype: Optional[TreeNode] - """ - hmap={} - self.rootindex=len(postorder)-1 - for i in range(len(inorder)): - hmap[inorder[i]]=i - - def helper(in_st,in_end): - if (in_st>in_end): - return None - - rootval=postorder[self.rootindex] - in_root_idx=hmap[rootval] - root = TreeNode(rootval) - self.rootindex-=1 - root.right = helper(in_root_idx+1,in_end) - root.left = helper(in_st,in_root_idx-1) - - return root - - - return helper(0,len(postorder)-1) \ No newline at end of file