【发布时间】:2018-10-22 20:09:52
【问题描述】:
我使用 Python 3.6 实现了一个链表,链表本身运行良好,但问题是当我尝试创建以下示例时:
3 -> 1 -> 5 -> 9 ->
7 -> 2
4 -> 6 ->
这意味着我有 2 个链表,并且在某一点上它们共享相同的元素 (7,2),我的链表代码如下:
class Element:
def __init__(self,value):
self.next = None
self.value = value
class LinkedList:
def __init__(self,head=None):
self.head = head
def append(self,new_element):
current = self.head
if current:
while current.next:
current = current.next
current.next = new_element
else:
self.head = new_element
def print_linked(self):
current = self.head
while current:
print(current.value, end=" ")
current = current.next
e1 = Element(3)
e2 = Element(1)
e3 = Element(5)
e4 = Element(9)
e1p = Element(4)
e2p = Element(6)
e1s = Element(7)
e2s = Element(2)
# Start setting up a LinkedList
ll = LinkedList(e1)
ll.append(e2)
ll.append(e3)
ll.append(e4)
ll.append(e1s)
ll.append(e2s)
l2 = LinkedList(e1p)
l2.append(e2p)
l2.append(e1s)
l2.append(e2s)
当我尝试打印任何链表时,程序总是在最后一个元素处进入无限循环,仅在我尝试共享同一个元素时发生。
3 1 5 9 7 2 2 2 2 2 2 2 [...]
我错过了什么吗?帮助表示赞赏。谢谢
【问题讨论】:
标签: python-3.x oop infinite-loop singly-linked-list