算法

[LeetCode OJ]- Valid Binary Sea

2017-03-22  本文已影响0人  其中一个cc

题目要求:验证一个树是否为二叉搜索树

二叉搜索树:(BST,二叉排序树,二叉查找树)。

一颗二叉检索树或者为空树,或者满足:

左子树的所有值都小于根节点的值,右子树的所有值都大于根节点的值。并且左右子树均为二叉搜索树。下图中,第一个树是BST,第二个树不是BST(原因:6<10)。

一颗BST 不是BST

因此,为了验证一颗二叉树是否为BST,只比较根节点和左右子节点的大小是不行的,还需要验证整个左右子树是否满足要求。

那么,我们可以使用两个值来限定子树的取值范围,上限max,下限min,每次递归时,都可以把当前节点的值赋给上限或者下限。

代码如下。

上一篇下一篇

猜你喜欢

热点阅读