思路

此法来自大佬 能吃胖发量不多

  1. 每取出一行,对其进行顺时针旋转(转置)
  2. 对转置后的矩阵,进行按行反转,使其相当于逆时针旋转
  3. 重复 1 2 步骤,直至矩阵为空
    class Solution:
     def spiralOrder(self , matrix ):
         res = []
         # 第一轮循环取第一行
         # 第二轮循环取最后一列
         # 第三轮循环取最后一行
         # 第四轮循环取第一列
         while matrix:
             res += matrix[0]
             # 取除第一行外剩下的所有行,并按照列,组成元组,此时的每一行即为以前的每一列,相当于转置操作
             zipObj = zip(*matrix[1:])
             # 对元组数据list化 方便进行切片操作
             zipList = list(zipObj)
             # [::-1] 相当于反转操作,按照行首,行尾调换顺序
             matrix = zipList[::-1]
         return res