面试必刷TOP101:34、判断是不是二叉搜索树
原创
©著作权归作者所有:来自51CTO博客作者敏儿好学不耻下问的原创作品,请联系作者获取转载授权,否则将追究法律责任
题目
题解
public class Solution {
private TreeNode pre = null;
/**
* 给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树
*
*
* @param root TreeNode类
* @return bool布尔型
*/
public boolean isValidBST (TreeNode root) {
if (null == root) {
return false;
}
return inorder(root);
}
public boolean inorder(TreeNode curr) {
if (null == curr) {
return true;
}
boolean isLeftOK = inorder(curr.left);
if (pre != null && pre.val >= curr.val) {
return false;
}
pre = curr;
boolean isRightOK = inorder(curr.right);
return isLeftOK && isRightOK;
}
}