无法使用链表获得正确的打印输出



这是我目前正在使用的函数。它是一个使用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()方法的实现以了解更多详细信息。

相关内容

  • 没有找到相关文章

最新更新