程序员代码面试指南读书笔记1
程序员文章站
2024-02-27 16:12:03
...
如何仅仅使用递归函数和栈操作逆序一个栈?
见书第8页
将递归使用的如火纯情,出神入化。
问题描述:比如将栈12345,翻转后为54321;
思路:第一步,想办法得到栈低元素
第二步,通过递归,翻转一下。这就需要深刻理解递归思想
—上代码----
package sharp1;
import java.util.Stack;
public class ReverseStack {
public static int getAndRemoveLastOne(Stack<Integer> stack){
int re = stack.pop();
if(stack.isEmpty()){
return re;
}
int last = getAndRemoveLastOne(stack);
stack.push(last);
return last;
}
public static void reverse(Stack<Integer> stack){
if(stack.isEmpty())
return;
int last = getAndRemoveLastOne(stack);
reverse(stack);
stack.push(last);
}
}
上一篇: 最近被使用(LRU)缓存