1 import java.util.ArrayList; 2 public class Solution { 3 public ArrayList<Integer> printMatrix(int [][] matrix) { 4 if(matrix==null){ 5 return null; 6 } 7 int start=0; 8 ArrayList<Integer> list=new ArrayList<Integer>(); 9 while(matrix[0].length>2*start && matrix.length>2*start){ 10 int columns=matrix[0].length; 11 int rows=matrix.length; 12 int endx=columns-1-start; 13 int endy=rows-1-start; 14 //从左到右打印一行 15 for(int i=start;i<=endx;i++){ 16 list.add(matrix[start][i]); 17 } 18 //从上到下打印一列 19 if(start<endy){ 20 for(int i=start+1;i<=endy;i++){ 21 list.add(matrix[i][endx]); 22 } 23 } 24 //从右到左打印一行 25 if(start<endx && start<endy){ 26 for(int i=endx-1;i>=start;i--){ 27 list.add(matrix[endy][i]); 28 } 29 } 30 //从下到上打印一列 31 if(start<endx && start<endy-1){ 32 for(int i=endy-1;i>start;i--){ 33 list.add(matrix[i][start]); 34 } 35 } 36 start++; 37 } 38 return list; 39 } 40 }
原文:https://www.cnblogs.com/wangqiong/p/11762406.html