这道题可以使用一种超简单且易理解的方法(包注释不超过20行):1.吸收第一行,并将第一行从矩阵中去掉,2.将矩阵“变相转置”(这里的转置可以理解为将矩阵从地上立起来,比如矩阵是【【1,2,3】, 【4,5,6】】 将它“变相转置”(立起来)为 【【3,6】,【2,5】,【1,4】】 )3.重复以上两步,直到将第一行去掉之后矩阵为空。

# -*- coding:utf-8 -*-
class Solution:
    # matrix类型为二维列表,需要返回列表
    def printMatrix(self, matrix):
        outlist = []
        while 1:
            # 吃掉第一行
            outlist.extend(matrix[0])
            # 如果还有其他行,去掉第一行。否则跳出循环
            if len(matrix)>1:
                matrix = matrix[1::]
            else :
                break
            # “转置”,把矩阵“立”起来
            matrix =[ [ row[i] for row in matrix] for i in range(len(matrix[0])-1 , -1 , -1) ]
        return outlist