Please correct my code and also please tell me where I went wrong.
public static boolean printRatPath(char [][]maze,int row,int col,int [][]sol)
{
if(row==maze.length-1 && col==maze[0].length-1)
{
sol[row][col]=1;
return true;
}
if(row>=maze.length || col>=maze[0].length || maze[row][col]=='X')
{
return false;
}
sol[row][col]=1;
printRatPath(maze,row,col+1,sol);
printRatPath(maze,row+1,col,sol);
sol[row][col]=0;
return false;
}
public static void displayArr(int [][]sol,int m,int n)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
System.out.print(sol[i][j]);
}
System.out.println();
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int m=sc.nextInt();
int n=sc.nextInt();
char [][]maze=new char[m][n];
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
maze[i][j]=sc.next().charAt(0);
}
}
int [][]sol=new int [m][n];
if(printRatPath(maze,0,0,sol))
{
displayArr(sol,m,n);
}
else
{
System.out.println(-1);
}
}
}