每天一道算法题(2019.3.25)

题目:
判断一颗二叉树是否为二叉查询树。

思路:
查看每一个节点是否满足两个条件(并且用递归来实现):
左节点及以下节点的值比它小
右节点及以下节点的值比它大

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)
			
点赞