下面是我正在编写的代码块,它是为学校准备的,所以我不想问答案只是一些指导。我已经花了很长一段时间了,也许我只是累了。有人能给我解释一下我的错误吗?在
def pop(self, idx=-1):
"""Deletes and returns the element at idx (which is the last element,
by default)."""
nidx = self._normalize_idx(idx)
if nidx >= len(self):
raise IndexError
n = self.head
for _ in range(self[-1]):
n = n.next
return n
n.prior.next = n.next
n.next.prior = n.prior
self.length -= 1
我认为你的错误都在这些方面:
您用于
range
调用的界限很奇怪。您可能希望迭代nidx
次,而不是self[-1]
是什么。在在这一点上,您可能不想
return
,因为return
会停止函数的其余部分的运行。尝试将return
行移到取消链接代码的下方。在您还需要决定是否应该返回一个节点(如果不重置
n.next
和n.prior
),或者该节点中包含的值,那么该节点将具有杂散链接。通常,链表的节点是实现细节,不会暴露给外部代码,因此您将返回值。在相关问题 更多 >
编程相关推荐