@@ -43,31 +43,15 @@ def isValidBST(self, root: Optional[TreeNode]) -> bool:
43
43
return self .isValidSubTree (root , maximum , minimum )
44
44
45
45
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
51
46
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 :
71
48
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