Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions W4_1_validated_bst.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
class Solution:

def isValidBST(self, root):
self.result = True
self.prev = None
self.helper(root)
return self.result

def helper(self, root):

# Base
if root == None:
return

# Logic
if self.result:
self.helper(root.left)

if self.prev is not None and self.prev.val >= root.val:
self.result = False

self.prev = root

if self.result:
self.helper(root.right)

# Time complexity: O(N), worst case if the violation is in the right most last node, we visit/traverse all nodes
# Space complexity: O(H), where h is the height of the tree (consider example of skewed tree)