import java.util.ArrayList; public class Solution { public ArrayList<Integer> printMatrix(int[][] matrix) { ArrayList<Integer> list = new ArrayList<>(); while (matrix.length > 0) { for (int i : matrix[0]) { list.add(i); } if (matrix.length ==1){ return list; } //构建删除第一行后的数组 int temp[][] = new int[matrix.length - 1][matrix[0].length]; for (int i = 1; i < matrix.length; i++) { for (int j = 0; j < matrix[i].length; j++) { temp[i - 1][j] = matrix[i][j]; } } matrix = arrayRotate(temp); } return list; } //数组旋转 public static int[][] arrayRotate(int[][] matrix) { int temp[][] = new int[matrix[0].length][matrix.length]; for (int i = 0; i < matrix[0].length; i++) { for (int j = 0; j < matrix.length; j++) { temp[i][j] = matrix[j][matrix[0].length - 1 - i]; } } return temp; } }