关键点:两个递归函数
- getAndRemoveLastElement(): 将栈底元素返回并移除
2.reverse(): 逆序栈
代码:
public int getAndRemoveLastElement(Stack<Integer> s) {
int result = s.pop();
if(s.isEmpty()) {
return result;
}else {
int last = getAndRemoveLastElement(s);
s.push(result);
return last;
}
}
public void reverse(Stack<Integer> s) {
if(s.isEmpty()) {
return;
}else {
int i = getAndRemoveLastElement(s);
reverse(s);
s.push(i);
}
}