我正在用Python实现链接列表。几乎所有实现都与实际的LinkedList类分开使用Node
类。我正在尝试在一个班级里做。
所以我想要能够添加3个元素,然后将它们打印出来。我的猜测是,这将需要某种形式的递归。在这里,我添加了两个元素(1.0和-1.0),然后打印列表。
ll = LinkedList(1.0)
ll.insert_front(-1.0)
print(ll._linkedlist)
#output
[-1.0, [1.0, None]]
这看起来不错。请注意,最后一个元素包含第二个元素(1.0)和指向None
的指针-在这里显示为[1.0, None]
但是,每当我尝试添加第三个元素时,它就会崩溃。
ll.insert_front(3.0)
[3.0, [-1.0, None]]
我想要的是以下输出:
[3.0, [-1.0, [1.0, None]]]
任何想法如何做到这一点?我当前的实现如下。
class LinkedList(object):
"""A data structure implemented in Python.
"""
def __init__(self, head):
"""Initialize List."""
self.head = head
self.size = 1
self.next = None
self._linkedlist = [self.head, self.next]
empty_ll = None
def insert_front(self, element):
self.next = self.head
self.head = element
self.size += 1
self._linkedlist[0] = self.head
self._linkedlist[1] = [self.next, empty_ll]
#print out the head of the linked list
def __repr__(self):
return 'LinkedList(%s)' % (self.head)