关键点1 要记录所有走过的路径
关键点2 遇到思路能回到岔路选择另一边
走过的路径用链表记录,要记住堆栈是一种结构,但是他是抽象的,并不具体用哪种具体结果去表示
也就是数据结构分为两种,具体的如数据链表,和抽象的比如堆栈,一种抽象可以用多种具体去描述,他是一种规则和限制。
这道题里用链表记录所走的路程,当出现上下左右都不能走了的时候,就退回一步,重新判断,因为这时走过的路已经标记走过了,就继续走没走过的。
注意这里的退回!!!
链表要表示所有走过的路,可以用原来的二维数组的值去表示哪些走过,也可以选择都记在链表中,肯定用前者方便,后者跟前者功能重叠了,于是每退回一步这个链表就少一个,当链表为空了,也就表示所有能走的路都走遍了,还是没有找到出口。