关于机器人走迷宫代码的疑问

问题

关于这篇博客”【华为机试】【校招】【Java】机器人走迷宫(DFS)“有个疑问不太懂
地址:https://blog.csdn.net/qq_27695659/article/details/126130848

代码位置

代码位置在dfs方法的

if (arr[newX1][newY1]!=1&&mark[newX1][newY1]){
        mark[newX1][newY1] = true;
        arr[newX1][newY1] = 2;//表示当前点已经走过
        if (dfs(newX1,newX1)){
           flag = true;
        }
        mark[newX1][newY1] = false;
    }
不解

请问if判断的这个arr[newX1][newY1]!=1&&mark[newX1][newY1]表示的是什么意思,
这个”arr[newX1][newY1]!=1“我大概知道是障碍物的意思,后面那个条件不太理解
还有这行代码表示的意思是什么

if (dfs(newX1,newX1)){
       flag = true;
   }