题目
判断一棵树是不是二分查找树
思路
递归判断左边是不是BST,右边是不是BST,对于每个节点,都给他一个minsize,maxsize。
代码
def isBST(self):
return self.__isBST(self.root,-float('inf'),float('inf'))
def __isBST(self,node,minsize,maxsize):
if node is None:
return True
if node._item < minsize or node._item > maxsize:
return False
return self.__isBST(node._left,minsize,node._item) and self.__isBST(node._right,node._item,maxsize)