这题解题思路还是来自递归。需要处理好一些特殊情况以适应递归。代码如下:
class Solution(object):
def __init__(self):
self.list1 = []
def spiralOrder(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: List[int]
"""
if matrix == []:
return self.list1 + []
if len(matrix[0]) == 1:
for i in matrix:
self.list1.append(i[0])
return self.list1
if len(matrix[0]) == 0:
return self.list1
if len(matrix) == 1:
return self.list1 + matrix[0]
if len(matrix) == 2:
return self.list1 + matrix[0] + matrix[-1][::-1]
else:
self.list1 = self.list1 + matrix[0]
for i in range(1, len(matrix) - 1):
print i, matrix[i][-1]
self.list1.append(matrix[i][-1])
self.list1 = self.list1 + matrix[-1][::-1]
for i in range(1, len(matrix) - 1)[::-1]:
self.list1.append(matrix[i][0])
del matrix[0]
del matrix[-1]
for i in matrix:
del i[0]
del i[-1]
return self.spiralOrder(matrix)