classSolution{publicList<Integer>spiralOrder(int[][] matrix){List<Integer> res =newArrayList<>();// 四个指针int left =0;int right = matrix[0].length-1;int top =0;int bottom = matrix.length-1;while(true){for(int i = left ; i <= right;i++){
res.add(matrix[top][i]);}
top++;if(top>bottom)break;for(int i = top; i <= bottom;i++){
res.add(matrix[i][right]);}
right--;if(left>right)break;// 底部行for(int i = right;left<=i;i--){
res.add(matrix[bottom][i]);}
bottom--;if(top>bottom)break;for(int i = bottom;i>=top;i--){
res.add(matrix[i][left]);}
left++;if(left>right)break;}return res;}}