https://leetcode-cn.com/problems/spiral-matrix/submissions/
class Solution(object): def spiralOrder(self, matrix): """ :type matrix: List[List[int]] :rtype: List[int] """ if matrix == []: return [] results = [matrix[0][0]] matrix[0][0] = None column = 0 row = 0 c_max = len(matrix[0]) - 1 r_max = len(matrix) - 1 while True: while column + 1 <= c_max and matrix[row][column + 1] != None: column += 1 results.append(matrix[row][column]) matrix[row][column] = None if row + 1 > r_max or matrix[row + 1][column] == None: break while row + 1 <= r_max and matrix[row + 1][column] != None: row += 1 results.append(matrix[row][column]) matrix[row][column] = None if column - 1 < 0 or matrix[row][column - 1] == None: break while column - 1 >= 0 and matrix[row][column - 1] != None: column -= 1 results.append(matrix[row][column]) matrix[row][column] = None if row - 1 < 0 or matrix[row - 1][column] == None: break while row - 1 >= 0 and matrix[row - 1][column] != None: row -= 1 results.append(matrix[row][column]) matrix[row][column] = None if column + 1 > c_max or matrix[row][column + 1] == None: break return results
来源:https://www.cnblogs.com/weswes/p/12081872.html