这是我目前正在使用的函数。它是一个使用nodes类的链表。这是我课本上的实现方法。然而,当我尝试打印时,我会得到这个输出。
<main.0x000001C1A21E5470><main.0x000001C1A21E5438><main0x000001C1A21E54A8><main0x000001C1A21E5400>处的节点对象
我读到使用__repr_可以帮助打印,但当我实现它时,它对我不起作用。
def copyList(self):
links = LinkedList()
current = self.head
while current.getNext() != None:
links.addLast(current)
current= current.getNext()
links.addLast(current.getData())
return links
该函数的调用方式类似于
list2=list1.copyList()
print(list2)
我尝试的repr功能
def __repr__(self):
string=''
current = self.head
if current != None:
string += str(current.getData())
current = current.getNext()
counter=2
while current:
string += " "+str(current.getData())
current = current.getNext()
if counter>9:
string=string+'n'
counter=0
counter=counter+1
return string
我好像误解了你的问题。
我认为问题出在您的copyList
函数中。应该是:
def copyList(self):
links = LinkedList()
current = self.head
while current.getNext() != None:
links.addLast(current.getData())
current = current.getNext()
links.addLast(current.getData())
return links
您使用了links.addLast(current)
。需要查看addLast()
方法的实现以了解更多详细信息。