实现一个栈的逆序,但是只能用递归函数和这个栈本身的pop操作来实现,而不能自己申请另外的数据结构。
给定一个整数数组A即为给定的栈,同时给定它的大小n,请返回逆序后的栈。
public static int[] reverseStack(int[] A, int n) {
if(n == 0){
return A;
}else{
int cur = getStackBottom(A, n);
n--;
reverseStack(A, n);
A[n] = cur;
return A;
}
// return A;
}
public static int getStackBottom(int[] A, int n) {
int result = A[n-1];//获取当前层数的值
n--;//往下一层走
if(n ==0){
return result;
}else{
int cur = getStackBottom(A, n);
A[n-1] = result;
return cur;
}
}