[题目] 用递归颠倒一个栈.例如输入栈{1, 2, 3, 4, 5},1在栈顶.颠倒之后的栈为{5, 4, 3, 2, 1},5处在栈顶. [分析] 乍一看到这道题目,第一反应是把栈里的所有元素逐一pop出来,放到一个数组里,然后在数组里颠倒所有元素,最后把数组中的所有元素逐一push进入栈.这时栈也就颠倒过来了.颠倒一个数组是一件很容易的事情.不过这种思路需要显示分配一个长度为O(n)的数组,而且也没有充分利用递归的特性. 我们再来考虑怎么递归.我们把栈{1, 2, 3, 4, 5}看成由两部