
先将一个栈中的最低元素抽取出来,其他元素往下移动一位。
//f函数负责将栈中最低下的一个数抽取出来,其他保持不变。
public static int f(Stack<Integer> stack) {
int result = stack.pop();
if(stack.isEmpty()) {//如果空了,就说明弹出的元素是最后一个了,直接返回
return result;
}else {//如果不是就继续循环
int last = f(stack);//再弹出一个,得到最后一个数之后不要忘了把之前弹出的重新压入到栈里面。
stack.push(result);
return last;
}
}
然后再逆序
public static void reverse(Stack<Integer> stack) {
if(stack.isEmpty()) {
return ;
}
int i = f(stack);//先弹出最后一个
reverse(stack);
stack.push(i);//然后最后压入最后一个,这不就逆序了嘛。
}
44

被折叠的 条评论
为什么被折叠?



