题目描述
实现一个函数,检查一棵二叉树是否为二叉搜索树。
示例一:
1 | 输入: |
示例二:
1 | 输入: |
题解
验证是否是二叉搜索树, 我们可以根据中序遍历结果是升序数组, 所以思路就是中序遍历这棵树, 一旦发现当前节点的数值小于等于前一个数, 那么就证明不是二叉搜索树.
简单来说, 就是在中序遍历的基础上创建一个变量记录着前一个数值, 多一个比较的步骤.
DFS 递归
1 | long pre = Long.MIN_VALUE; |
DFS 迭代
1 | public boolean isValidBST2(TreeNode root) { |