这是我正在使用的功能。它是一个使用nodes类的链表。这是implementation of it from my textbook。但是当我尝试打印时,我得到了这个输出。
< main .Node对象位于0x000001C1A21E5470> < main .Node对象位于0x000001C1A21E5438> < main .Node对象位于0x000001C1A21E54A8> < main .Node对象位于0x000001C1A21E5400>
我读到使用__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
答案 0 :(得分:0)
我似乎误解了你的问题。
我认为问题出在你的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()
方法的实现以获取更多详细信息。