我似乎无法让我的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