#1628. 颠倒栈
颠倒栈
题目:用递归颠倒一个栈
输入
栈的初始状态为: {1, 2, 3, 4, 5}
,栈顶是 1
。
输出
颠倒后的栈为: {5, 4, 3, 2, 1}
,栈顶是 5
。
输入格式
输入一行数字,表示栈中的元素。
示例输入:
1 2 3 4 5
输出格式
输出栈中元素的颠倒顺序。
示例输出:
5 4 3 2 1
样例
输入:
1 2 3 4 5 6
输出:
6 5 4 3 2 1
说明
在栈中,最先插入的元素是最先被删除的(先进先出)。在此题中,通过递归方法,要求将栈内的元素顺序完全颠倒,最后元素变成栈顶。
例如,给定初始栈为 {1, 2, 3, 4, 5}
,栈顶为 1
。递归操作将把这些元素颠倒,使得栈变为 {5, 4, 3, 2, 1}
,栈顶变为 5
。
递归解决思路:
- 递归地弹出栈顶元素,直到栈为空。
- 递归回退时,将弹出的元素放入栈的底部,实现栈顺序的颠倒。
通过这个思路,可以使用栈的递归特性来交换栈中的元素。