public boolean checkBST(TreeNode root) {
return isBST(root, Long.MIN_VALUE, Long.MAX_VALUE);
}
public boolean isBST(TreeNode root, long minVal, long maxVal)
{
if(null == root)
{
return true;
}
return (minVal < root.val && root.val < maxVal) && isBST(root.left, minVal, root.val) && isBST(root.right,root.val,maxVal);
}