fix: raise error in peek() function of linkedlist_stack.py, linkedlist_queue.py, linkedlist_deque.py (#754)
* fix: linkedlist_stack.py 中的peek方法需要判空raise Error 栈空的时候不能再 peek() 。另外由于 pop() 复用了 peek() ,栈空时返回的 None 会传递到 pop() 中的 num ,导致后续的继续执行 self.peek.next 报错等后续问题 * Update linkedlist_stack.py * Update linkedlist_queue.py * Update linkedlist_deque.py --------- Co-authored-by: Yudong Jin <krahets@163.com>
This commit is contained in:
parent
e8554975f4
commit
a9d70e9e4b
@ -96,11 +96,15 @@ class LinkedListDeque:
|
||||
|
||||
def peek_first(self) -> int:
|
||||
"""访问队首元素"""
|
||||
return None if self.is_empty() else self.front.val
|
||||
if self.is_empty():
|
||||
raise IndexError("双向队列为空")
|
||||
return self.front.val
|
||||
|
||||
def peek_last(self) -> int:
|
||||
"""访问队尾元素"""
|
||||
return None if self.is_empty() else self.rear.val
|
||||
if self.is_empty():
|
||||
raise IndexError("双向队列为空")
|
||||
return self.rear.val
|
||||
|
||||
def to_array(self) -> list[int]:
|
||||
"""返回数组用于打印"""
|
||||
|
@ -51,9 +51,8 @@ class LinkedListQueue:
|
||||
|
||||
def peek(self) -> int:
|
||||
"""访问队首元素"""
|
||||
if self.size() == 0:
|
||||
print("队列为空")
|
||||
return False
|
||||
if self.is_empty():
|
||||
raise IndexError("队列为空")
|
||||
return self.__front.val
|
||||
|
||||
def to_list(self) -> list[int]:
|
||||
|
@ -35,16 +35,15 @@ class LinkedListStack:
|
||||
|
||||
def pop(self) -> int:
|
||||
"""出栈"""
|
||||
num: int = self.peek()
|
||||
num = self.peek()
|
||||
self.__peek = self.__peek.next
|
||||
self.__size -= 1
|
||||
return num
|
||||
|
||||
def peek(self) -> int:
|
||||
"""访问栈顶元素"""
|
||||
# 判空处理
|
||||
if not self.__peek:
|
||||
return None
|
||||
if self.is_empty():
|
||||
raise IndexError("栈为空")
|
||||
return self.__peek.val
|
||||
|
||||
def to_list(self) -> list[int]:
|
||||
|
Loading…
x
Reference in New Issue
Block a user