我正在尝试编写一个递归方法,接收一个整数数组并将该数组反向返回。以下是我目前的代码。
private static int[] reverseArray(int arr[]) {
int arrDup[] = arr.clone();
int x = 0, y = arrDup.length - 1;
if (arrDup[0] == arr[arr.length - 1]) {
return arrDup;
}
else {
// System.out.println(Arrays.toString(arrDup));
arrDup[y--] = arr[x++];
return reverseArray(arrDup);
}
}
public static void main(String[] args) {
int arrPass[] = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(reverseArray(arrPass)));
}
我该如何修复这个方法,以便它可以正确地将数组反转?当我运行它时,结果只有[1, 2, 3, 4, 1]
。假设数组中没有重复的元素。我理解递归,只是在这里尝试实现它。