我似乎无法让我的 len 功能正常工作,我一直在尝试大量的东西,但我是一个完全的初学者,所以我很确定我错过了一些完全明显的东西。这是我的代码......
def __len__(self):
if self.head is None:
return 0
else:
return self.size
我背后的想法很简单。如果双向链表的头部为None,则它必须为空,因此返回0,否则,只返回列表的大小。
然而,我得到一个断言错误说...
AssertionError: List should contain 1 element, but length is 0
提前感谢任何帮助。
编辑:这是运行我的函数的代码......
testList.add(14)
assert len(testList) == 1, "List should contain 1 element, but length is %r" % len(testList)
EDIT2:这是我的添加功能,我很确定它的权利,我花了2个小时就可以了...
def add(self, value):
newNode = DoubleListNode(value)
if self.head is None:
self.head = newNode
self.tail = newNode
newNode.prev = None
newNode.next = None
return newNode
elif value < self.head.data:
self.head = newNode
newNode.next = self.head
newNode.prev = None
return newNode
elif value > self.tail.data:
self.tail = newNode
newNode.prev = self.tail
newNode.next = None
return newNode
else:
node = self.head
node2 = node
while node is not None and node.data < value :
node = node.next
node2 = node.prev
newNode.next = node.prev
newNode.prev = node2.next
return newNode