public class SpiralMatrix { public List<Integer> spiralOrder(int[][] matrix) { // 定义一个存放结果的列表 List<Integer> res = new ArrayList<>(); // 如果矩阵为空或者行数为0,直接返回结果列表 if (matrix == null || matrix.length == 0) { return res; } // 获取矩阵的行数和列数 int m = matrix.length, n = matrix[0].length; // 定义四个边界变量,分别代表当前遍历到的矩阵的上下左右四个边界 int left = 0, right = n - 1, top = 0, bottom = m - 1; // 进入循环,按照螺旋的顺序遍历矩阵,并把每个元素加入到结果列表中 while (left <= right && top <= bottom) { // 从左到右遍历矩阵的上边界 for (int i = left; i <= right; i++) { res.add(matrix[top][i]); } // 从上到下遍历矩阵的右边界 for (int i = top + 1; i <= bottom; i++) { res.add(matrix[i][right]); } // 如果上下边界不重合,从右到左遍历矩阵的下边界 if (top != bottom) { for (int i = right - 1; i >= left; i--) { res.add(matrix[bottom][i]); } } // 如果左右边界不重合,从下到上遍历矩阵的左边界 if (left != right) { for (int i = bottom - 1; i > top; i--) { res.add(matrix[i][left]); } } // 调整边界变量,继续遍历矩阵的下一个螺旋圈 left++; right--; top++; bottom--; } // 返回结果列表 return res; } } 请根据以上所有的对话,进行修正
时间: 2024-02-10 18:11:01 浏览: 55
这段代码是一个Java类,名为SpiralMatrix,其中包含一个spiralOrder方法,用于按照螺旋的顺序遍历一个二维矩阵,并将每个元素加入到结果列表中。
具体实现如下:
```java
import java.util.ArrayList;
import java.util.List;
public class SpiralMatrix {
public List<Integer> spiralOrder(int[][] matrix) {
// 定义一个存放结果的列表
List<Integer> res = new ArrayList<>();
// 如果矩阵为空或者行数为0,直接返回结果列表
if (matrix == null || matrix.length == 0) {
return res;
}
// 获取矩阵的行数和列数
int m = matrix.length, n = matrix[0].length;
// 定义四个边界变量,分别代表当前遍历到的矩阵的上下左右四个边界
int left = 0, right = n - 1, top = 0, bottom = m - 1;
// 进入循环,按照螺旋的顺序遍历矩阵,并把每个元素加入到结果列表中
while (left <= right && top <= bottom) {
// 从左到右遍历矩阵的上边界
for (int i = left; i <= right; i++) {
res.add(matrix[top][i]);
}
// 从上到下遍历矩阵的右边界
for (int i = top + 1; i <= bottom; i++) {
res.add(matrix[i][right]);
}
// 如果上下边界不重合,从右到左遍历矩阵的下边界
if (top != bottom) {
for (int i = right - 1; i >= left; i--) {
res.add(matrix[bottom][i]);
}
}
// 如果左右边界不重合,从下到上遍历矩阵的左边界
if (left != right) {
for (int i = bottom - 1; i > top; i--) {
res.add(matrix[i][left]);
}
}
// 调整边界变量,继续遍历矩阵的下一个螺旋圈
left++;
right--;
top++;
bottom--;
}
// 返回结果列表
return res;
}
}
```
阅读全文