问题描述
以下两种语法有什么区别。
public class DFS {
private int[][] maze;
public DFS(int[][] maze) {
this.maze = maze;
}
// Solves given maze recursively,input starting position in maze.
public boolean solve(int x,int y) {
maze[x][y] = 2;
// 3 is the cell the algorithm is supposed to find.
if (maze[x][y] == 3) {
return true;
}
// Looks up.
if (x > 0 && maze[x-1][y] == 0 && solve (x-1,y) ) {
maze[x][y] = 2;
return true;
}
// Looks down
if (x < maze.length && maze[x+1][y] == 0 && solve (x+1,y) ) {
maze[x][y] = 2;
return true;
}
// Looks right.
if (y < maze.length && maze[x][y+1] == 0 && solve (x,y+1) ) {
maze[x][y] = 2;
return true;
}
// Looks left.
if (y > 0 && maze[x][y-1] == 0 && solve (x,y-1) ) {
maze[x][y] = 2;
return true;
}
return false;
}
}
我知道第二个是记录,但第一个是什么,我只需要知道一个名字,我可以在线搜索以了解更多信息。