问题:实现peek(stack),它返回但不会从堆栈中删除顶部元素。如果列表为空,则返回None。
我尝试了很多次但没有成功获得它,任何人都可以帮忙吗?
我的尝试:
def peek_stack(stack):
if stack == []:
return None
else:
s= stack.copy()
return s.pop(0)
答案 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]