#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


递归解决思路:

  1. 递归地弹出栈顶元素​​,直到栈为空。
  2. 递归回退时,将弹出的元素放入栈的底部​,实现栈顺序的颠倒。

通过这个思路,可以使用栈的递归特性来交换栈中的元素。