代码拉取完成,页面将自动刷新
同步操作将从 papi林/java面试迷你版 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
如何使用一个递归函数和栈操作逆序一个栈
例如把1、2、3、4、5压入栈中,那么栈从头到底就是5、4、3、2、1, 现在通过逆序成1、2、3、4、5,只能通过递归函数实现。
package ch1;
import java.util.Stack;
/**
* @Description: ReverseStack
* @Question: 如何使用一个递归函数和栈操作逆序一个栈
* 例如把1、2、3、4、5压入栈中,那么栈从头到底就是5、4、3、2、1,
* 现在通过逆序成1、2、3、4、5,只能通过递归函数实现。
* --我有点想当然了,跑出来的结果不太对,然后看了下答案。。
* @Author: linjiayu
* @Date: 2020/6/6 0:05
*/
public class ReverseStack {
public static int getLast(Stack<Integer> stack) {
// 将栈的第一个元素拿出来
int result = stack.pop();
if (stack.isEmpty()) {
// 直到栈为空了
return result;
}
// 剩下的反转
int last = getLast(stack);
// 再放回去
stack.push(result);
return last;
}
public static void reverse(Stack<Integer> stack) {
if (stack.isEmpty()) {
return;
}
int i = getLast(stack);
reverse(stack);
stack.push(i);
}
public static void main(String[] args) {
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
reverse(stack);
while (!stack.isEmpty()) {
System.out.print(stack.pop() + " ");
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。