一、题目解析
二、算法原理
首先说一下二叉搜索树的概念,二叉搜索树是左子树只包含小于当前节点的数,右子树只包含大于当前节点的数,并且左子树和右子树也必须是二叉搜索树。
由此我们可以得出二叉搜索树的中序遍历的结果是一个有序的序列。这启示我们在中序遍历的时候实时检查当前节点的值是否大于前一个中序遍历到的节点的值即可。如果均大于说明这个序列是升序的,整棵树是二叉搜索树,否则不是.我们只需要对该树进行一次中序遍历,保证该树的左子树是二叉搜索树,右子树也是二叉搜索树则返回true。由于该题数值较大我们初始化prev=Long.MIN.VALUE,将这个数和该树根节点的数值进行比较。