//仅用递归函数和栈操作逆序一个栈
//需要实现两个递归函数,一个用来返回并移除栈底元素,另一个递归函数就是逆序函数
#include <stack>
class Solution
{
public:
int getAndRemoveLastElement(stack<int>& st)
{
int ret = st.top();
st.pop();
if (st.empty())
return ret;
else
{
int Last = getAndRemoveLastElement(st);
st.push(ret);
return Last;
}
}
void reverse(stack<int>& st)
{
if (st.empty())
{
return;
}
int i = getAndRemoveLastElement(st);
reverse(st);
st.push(i);
}
};
//需要实现两个递归函数,一个用来返回并移除栈底元素,另一个递归函数就是逆序函数
#include <stack>
class Solution
{
public:
int getAndRemoveLastElement(stack<int>& st)
{
int ret = st.top();
st.pop();
if (st.empty())
return ret;
else
{
int Last = getAndRemoveLastElement(st);
st.push(ret);
return Last;
}
}
void reverse(stack<int>& st)
{
if (st.empty())
{
return;
}
int i = getAndRemoveLastElement(st);
reverse(st);
st.push(i);
}
};
此篇博客是学习牛客网左程云老师的课堂得来