擅长:python、mysql、java
<p>请尝试下面给出的代码:</p>
<pre><code>matrix = [[False for x in range(5)] for x in range(5)]
matrix[0][3] = True
matrix[2][2] = True
stack=[]
def find(rc): # argument rc is a (row,col) tuple like (1,1). Don't pass it a 1,1
global stack
r=rc[0]
c=rc[1]
if (c+1 < 5) and (matrix[r][c+1]==True):
print r,c+1
stack=[]
return
if (c-1 > -1) and (matrix[r][c-1]==True):
print r,c-1
stack=[]
return
if (r+1 < 5) and (matrix[r+1][c]==True):
print r+1,c
stack=[]
return
if (r-1 > -1) and (matrix[r-1][c]==True):
print r-1,c
stack=[]
return
if r+1 < 5: stack.append((r+1,c))
if r-1 > -1: stack.append((r-1,c))
if c+1 < 5: stack.append((r,c+1))
if c-1 > -1: stack.append((r,c-1))
find(stack.pop(0))
>>> find((1,1))
2 2
>>> find((0,0))
0 3
>>> find((4,0))
2 2
>>> find((4,4))
2 2
>>> find((0,4))
0 3
</code></pre>