实现一个栈的逆序,但是只能用递归函数和这个栈本身的pop操作来实现,而不能自己申请另外的数据结构。
给定一个整数数组A即为给定的栈,同时给定它的大小n,请返回逆序后的栈。
测试样例:
输入:[4,3,2,1],4
返回:[1,2,3,4]
class StackReverse {
public:
int get(vector<int> &A)
{
int curr = A.back();
A.pop_back();
if(A.empty()){
return curr;
}else{
int result = get(A);
A.push_back(curr);
return result;
}
}
void reverseStack__(vector<int> &A){
if(A.empty()){
return;
}
int temp = get(A);
reverseStack__(A);
A.push_back(temp);
return;
}
vector<int> reverseStack(vector<int> A, int n) {
// write code here
reverseStack__(A);
return A;
}
};