Skip to content

Commit df54080

Browse files
committed
validate-binary-search-tree solutions
1 parent 5281a74 commit df54080

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Definition for a binary tree node.
2+
# class TreeNode:
3+
# def __init__(self, val=0, left=None, right=None):
4+
# self.val = val
5+
# self.left = left
6+
# self.right = right
7+
class Solution:
8+
def isValidBST(self, root: Optional[TreeNode]) -> bool:
9+
"""
10+
checking validation using inorder traversal
11+
always greater than previous node's key
12+
13+
time complexity: O(n)
14+
15+
"""
16+
17+
prev = [None]
18+
19+
def inorder(node):
20+
if not node:
21+
return True
22+
23+
#search left sub tree first
24+
if not inorder(node.left):
25+
return False
26+
27+
if prev[0] is not None and node.val <= prev[0]:
28+
return False
29+
30+
#set current node value
31+
prev[0] = node.val
32+
#search right sub tree
33+
return inorder(node.right)
34+
35+
return inorder(root)

0 commit comments

Comments
 (0)