@@ -43,31 +43,15 @@ def isValidBST(self, root: Optional[TreeNode]) -> bool:
4343 return self .isValidSubTree (root , maximum , minimum )
4444
4545 def isValidSubTree (self , root , maximum , minimum ):
46- if root .left is not None :
47- if root .val <= root .left .val :
48- return False
49- if not minimum < root .left .val < maximum :
50- return False
5146
52- if root .right is not None :
53- if root .val >= root .right .val :
54- return False
55- if not minimum < root .right .val < maximum :
56- return False
57-
58- if root .left is not None :
59- l_max = min (maximum , root .val )
60- is_left_valid = self .isValidSubTree (root .left , l_max , minimum )
61- else :
62- is_left_valid = True
63-
64- if root .right is not None :
65- r_min = max (minimum , root .val )
66- is_right_valid = self .isValidSubTree (root .right , maximum , r_min )
67- else :
68- is_right_valid = True
69-
70- if is_left_valid and is_right_valid :
47+ if root is None :
7148 return True
72- else :
73- return False
49+
50+ if not minimum < root .val < maximum :
51+ return False
52+
53+ return self .isValidSubTree (
54+ root .left , root .val , minimum
55+ ) and self .isValidSubTree (
56+ root .right , maximum , root .val
57+ )
0 commit comments