public static boolean isBST(int arr[], int begin, int end){ int endEle = arr[end]; int i = begin; if(begin == end){ return true; } while(i < end){ if(arr[i] < endEle){ i++; } else { break; } } int j = i; while(j < end){ if(arr[j] < endEle){ return false; } j++; } if(!isBST(arr, begin, i -1)){ return false; } if(!isBST(arr, i, end -1)){ return false; } return true; }