窥视在python 3中的堆栈

时间:2017-10-18 02:04:44

标签: python

问题:实现peek(stack),它返回但不会从堆栈中删除顶部元素。如果列表为空,则返回None。

我尝试了很多次但没有成功获得它,任何人都可以帮忙吗?

我的尝试:

def peek_stack(stack):
    if stack == []:
        return None
    else:
        s= stack.copy()
        return s.pop(0)

3 个答案:

答案 0 :(得分:7)

如果您需要使用自己的方式解决此问题,请使用return s.pop()而不是return s.pop(0),因为s.pop()会弹出最后一个元素,但s.pop(0)会弹出第一个元素......

顺便说一句,它建议像这样实现它(它可以避免复制堆栈,提高性能)

def peek_stack(stack):
    if stack == []:
        return None
    else:
        return stack[-1]    # this will get the last element of stack

答案 1 :(得分:4)

更简单:

def peek_stack(stack):
    if stack:
        return stack[-1]

答案 2 :(得分:0)

Def peek(stk): 
      If stk == [ ]: 
         Return None
      Else: 
         Top = lena(stk)  -1 
          Return stk [top]