思路使用队列完成BFS搜索。使用标记数组标记元素是否被使用过。from collections import deque qdeque() res[] visited[[0]*n for _ in range(m)] #m行n列的网格初始化标记数组为全0 q.append([start_x,start_y]) #初始节点坐标入队 如q[(5,3)] visited[start_x][start_y]1 dirs[(0,1),(0,-1),(1,0),(-1,0)] #定义四个方向 def bfs(start_x,start_y): while q: #当队列不为空时执行 x,yq.popleft() #出队 res.append(grid[x][y]) #记录出队的元素 for dx,dy in dirs: nxxdx nyydy if 0nxm and 0nyn: #如果没有越界 if visited[nx][ny]0: #如果没有使用 visited[nx][ny]1 #标记为使用后入队 q.append([nx,ny]) print(res) return res