给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
class Solution {
public List<Integer> spiralOrder(int[][] matrix) {
List<Integer> order=new ArrayList<Integer>();
if(matrix==null || matrix.length==0 || matrix[0].length==0){
return order;
}
int rows=matrix.length,columns=matrix[0].length;
int left =0,right=columns-1,top=0,bottom=rows-1;
while(left<=right&&top<=bottom){
for(int column=left;column<=right;column++){
order.add(matrix[top][column]);
}
for(int row=top+1;row<=bottom;row++){
order.add(matrix[row][right]);
}
if(left<right && top<bottom){
for(int column =right-1;column>left;column--){
order.add(matrix[bottom][column]);
}
for(int row=bottom;row>top;row--){
order.add(matrix[row][left]);
}
}
left++;
right--;
bottom--;
top++;
}
return order;
}
}