题目:
判断一颗二叉树是否为二叉查询树。
思路:
查看每一个节点是否满足两个条件(并且用递归来实现):
左节点及以下节点的值比它小
右节点及以下节点的值比它大
python代码:
class solution:
def isValidBST(self, root):
"""
type root: TreeNode
rtype: boolean
"""
return self.valid(root, float("-inf"), float("inf"))
def valid(self, root, min, max):
if not root:
return True
elif root.val < min or root.val > max:
return False
return self.valid(root.left, min, root.val) and self.valid(root.right, root.val, max)