【发布时间】:2022-01-17 08:24:44
【问题描述】:
我有一个工作程序可以删除链表的第一个元素。 我不确定为什么 self._first = self._first.next 行会删除列表的第一个元素。有人可以帮我澄清一下吗?
def remove_first(self) -> Any:
curr = self._first
if curr is None:
raise IndexError
else:
first = curr.item
self._first = self._first.next
return first
【问题讨论】:
-
它将当前第一个元素的下一个元素分配为新的第一个元素。
-
但这并不能解释为什么它会从链表中删除第一项,假设我有一个链表是 [1,2,3],它会将它变成 [2.3]跨度>
-
Harun 在评论中回答了您的问题,但您为什么要自己在 Python 中实现链表?标准库中有许多现成的高效数据结构,几乎可以处理链表有意义的任何场景。
-
我自己实施它,因为我的学校需要它
标签: python list linked-list