# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right classSolution: defisValidBST(self, root: TreeNode) -> bool: definOrder(root): ans = [] ifnot root: return ans ans += inOrder(root.left) ans.append(root.val) ans += inOrder(root.right) return ans ans = inOrder(root) ifnot ans: returnTrue for i inrange(1, len(ans)): if ans[i-1] >= ans[i]: returnFalse returnTrue
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right classSolution: defisValidBST(self, root: TreeNode) -> bool: ifnot root: returnTrue stack = [] p = root pre_val = float('-inf') while stack or p: while p: stack.append(p) p = p.left p = stack.pop() if p.val <= pre_val: returnFalse pre_val = p.val p = p.right returnTrue