1.
2.
class Solution {
public ArrayList<Integer> list=new ArrayList<Integer>();
public List<Integer> spiralOrder(int[][] matrix) {
if(matrix.length<=0){
return list;
}
int row=matrix.length;
int col=matrix[0].length;
int start=0;
while(row>2*start && col>2*start){
printMatrixInCircle(matrix,row,col,start);
start++;
}
return list;
}
public void printMatrixInCircle(int [][] matrix,int row,int col,int start){
int endX=col-start-1;
int endY=row-start-1;
for(int i=start;i<=endX;i++){
list.add(matrix[start][i]);
}
for(int i=start+1;i<=endY;i++){
list.add(matrix[i][endX]);
}
for(int i=endX-1;i>=start && endY>start;i--){
list.add(matrix[endY][i]);
}
for(int i=endY-1;i>start && endX>start;i--){
list.add(matrix[i][start]);
}
}
}