我有两个方法,spiralOrder和recurSpiral,其中spiralOrder是我的主要方法。这很奇怪因为print spiralArray,但是当我在下一行返回spiralArray时,它返回null。我觉得我错过了很简单的事情。感谢
class Solution(object):
def spiralOrder(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: List[int]
"""
spiralArray = []
final = self.recurSpiral(matrix, spiralArray)
return final
def recurSpiral(self, matrix, spiralArray):
print matrix
if(len(matrix) == 0 or len(matrix[0]) == 0):
print spiralArray
return spiralArray
if(len(matrix) <= 2 or len(matrix[0]) <= 2):
self.firstThree(matrix, spiralArray)
return spiralArray
spiralArray = self.firstThree(matrix, spiralArray)
print spiralArray
notFirst = False
for l in reversed(matrix[1:]):
if(notFirst):
spiralArray.append(l[0])
else:
notFirst = True
print spiralArray
self.recurSpiral(matrix[1:-1][1:-1], spiralArray)
def firstThree(self, matrix, spiralArray):
for i in matrix[0]:
spiralArray.append(i)
notFirst = False
for j in matrix:
if(notFirst):
spiralArray.append(j[len(matrix[0])-1])
else:
notFirst = True
notFirst = False
for k in reversed(matrix[len(matrix)-1]):
if(notFirst):
spiralArray.append(k)
else:
notFirst = True
print spiralArray
return spiralArray
答案 0 :(得分:0)
您在函数结束时缺少return语句。而不是:
self.recurSpiral(matrix[1:-1][1:-1], spiralArray)
应该是:
return self.recurSpiral(matrix[1:-1][1:-1], spiralArray)
否则,如果在该路径上到达函数的末尾,则函数将返回None
。