文章目录 题目描述 思路 & 代码 递归 迭代 更新版 - 递归 题目描述 递归和迭代都实现了,递归相对比较好理解,也比较好实现 思路 & 代码 递归 每次都把最外圈的元素跑完 一行 or 一列的时候,跑一次结束 边界:left > right || low > height 的时候也 return class Solution { List<Integer> ans = new ArrayList<>(); public List<Integer> spiralOrder(int[][] matrix) { // 试试递归 recursion(matrix, 0, matrix.length - 1, 0, matrix[0].length - 1); return ans; } // 一次一圈 void recursion(int[][] matrix, int low, int height, int left, int right){ if(low > height || left > right){ return; } // 一行情况 if(height == low){ for(int i = left; i <= right; i++){ ans.add(matrix[low][i]); } return; } // 一列情况 else if(left == right){ for(int i = low; i <= height; i++){ ans.add(matrix[i][left]); } return; } // 其他情况 for(int i = left; i <= right; i++){ ans.add(matrix[low][i])