## Recursive Backtracking and Maze problem

I am having some truble with Recursive Backtracking, i have tried 2 variations, but both overflow the stack. Any ideas would be great

Code:
```	public Point findPath(Point point){
String temp;
String [] tempA;
temp = point.toString();
tempA = Maze.tokenString(temp, ",");
int y = Integer.parseInt(tempA[0]);
int x = Integer.parseInt(tempA[1]);

if(Maze.isEnd(point)){
return point;
}

Maze.mark(point);
//north
Point n = new Point(y-1,x);
if(Maze.move(n)){
findPath(n);
}
//south
Point s = new Point(y+1,x);
if(Maze.move(s)){
findPath(s);
}
//east
Point e = new Point(y,x+1);
if(Maze.move(e)){
findPath(e);
}
//west
Point w = new Point(y, x-1);
if(Maze.move(w)){
findPath(w);
}

Maze.mark(point);

findPath(point);

return point;
}```
Code:
```	public boolean moveP(Point point, int d){
String temp;
String [] tempA;
temp = point.toString();
tempA = Maze.tokenString(temp, ",");
int y = Integer.parseInt(tempA[0]);
int x = Integer.parseInt(tempA[1]);

switch(d){

case 1:
n.set(y-1,x);
if(Maze.move(n)){
return true;
}

break;
case 2:
e.set(y,x+1);
if(Maze.move(e)){
return true;
}
break;
case 3:
s.set(y+1,x);
if(Maze.move(s)){
return true;
}
break;
case 4:
w.set(y,x-1);
if(Maze.move(w)){
return true;
}
break;
default:

}

return false;
}

public Point findPath(Point point){

if(maze1.isEnd(point)){
return point;
}

maze1.mark(point);
//north
if((moveP(point,1))){
return findPath(n);
}
//east
if((moveP(point,2))){
return findPath(e);
}
//south
if((moveP(point,3))){
return findPath(s);
}
//west
if((moveP(point,4))){
return findPath(w);
}
maze1.mark(point);

return point;

}```