Given a binary tree, determine if it is a valid binary search tree (BST).
Assume a BST is defined as follows:
- The left subtree of a node contains only nodes with keys less than the node’s key.
- The right subtree of a node contains only nodes with keys greater than the node’s key.
- Both the left and right subtrees must also be binary search trees.
leetcode已经给出了二叉查找树的定义了。
class Solution: # @param root, a tree node # @return a boolean def isValidBST(self, root): if root is None: return True return self.helper(root,-99999,999999) # left ~ right 是node的取值范围 def helper(self,root,left,right): if root is None: return True if root.val <= left or root.val >=right: #超出范围 return False return self.helper(root.left,left,root.val) and self.helper(root.right,root.val,right)
找到画图工具后我再来更新部分的图