[英]Recursively reverse an array starting from index 0
我需要遞歸地反轉僅傳遞 2 個參數的數組,但似乎不起作用。 這就是我嘗試過的
private static void rotate(char[]a, int i){
if(i==a.length){
return;
}else{
char temp = a[i];
a[i] = a[a.length - 1 - i];
a[a.length - 1 - i] = temp;
rotate(a, i+1);
}
}
如果我通過類似 char[] x = {'a', 'b', 'c'}; 它將打印 cbc 而不是 cba。 怎么了?
您的遞歸退出條件不正確。 正確的是if (i == a.length/2) { return; }
您將元素與數組末尾的相應元素交換。 當您到達陣列的中間時 - 所有工作都已完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.