这道题可以使用一种超简单且易理解的方法(包注释不超过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