Input: root = [5,1,4,null,null,3,6] Output: false Explanation: The root node’s value is 5 but its right child’s value is 4.
Constraints:
The number of nodes in the tree is in the range [1, 10⁴].
-2³¹ <= Node.val <= 2³¹ - 1
Test Cases
1 2 3 4 5 6 7 8
# 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: Optional[TreeNode]) -> bool:
import os import sys sys.path.append(os.path.dirname(os.path.dirname(__file__))) from _utils.binary_tree import build_tree from solution import Solution
# Definition for a binary tree node. classTreeNode: def__init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right
classSolution: defisValidBST(self, root: Optional[TreeNode]) -> bool: max_val = None stack = [] while root or stack: if root: stack.append(root) root = root.left else: root = stack.pop() if max_val isnotNoneand root.val <= max_val: returnFalse max_val = root.val root = root.right