题目
一个栈依次压入1,2,3,4,5,那么从栈顶到栈底分别为5,4,3,2,1.将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现
思路
1.首先实现一个函数,此函数可以返回栈的栈底元素并移除栈底元素,此函数记为:get_and_remove_last_element
2.递归函数的编写
- 首先递归终止条件是:栈stack为空
- 每层的任务:调用get_and_remove_last_element函数,获得并移除栈底元素
- 进入递归下一层
- 当递归向回走,每层做的状态还原:将获得的栈底元素依次压入栈stack
代码
def get_and_remove_last_element(stack):
"""
将栈stack的栈底元素返回并移除
"""
element = stack[0]
del stack[0]
return element
def reverse(stack):
# 终止条件
if not s