如何在0x01BA8A90>打印<__ main __。LinkedList对象?

时间:2019-08-09 04:00:12

标签: python python-3.x

有人可以解释为什么它显示给我以及如何打印吗? 我在做什么错,如何打印此对象引用?

我也尝试打印new_list(insort()),但仍然相同 我正在打印列表,然后为什么不显示

我知道之前有人问过有关此问题的信息... 但我仍然不明白。

class node(object):
    def __init__(self, d, n=None):
        self.data=d
        self.next_node=n

    def get_data(self):
        return self.data

    def set_data(self,d):
        self.data=d

    def get_next(self):
        return self.next_node

    def set_next(self, n):
        self.next_node=n




    def has_next(self):
        if self.get_next() is not None:
            return True
        else:
            False







class LinkedList(object):
    def __init__(self, r=None):
        self.root=r
        self.size=0

    def get_size(self):
        return self.size

    def add(self,d):
        new_node = node(d, self.root)
        self.root = new_node
        self.size+=1


    def sort(self):
        if self.size>2:
            newlist = []
            this_node = self.root
            newlist.append(this_node)
            while this_node.has_next():
                this_node = this_node.get_next()
                newlist.append(this_node)
            newlist = sorted(newlist ,key = lambda node: node.data,reverse=True)

            newLinkedList = LinkedList()
            for element in newlist:
                newLinkedList.add(element)
            return newLinkedList
        return self





new_list=LinkedList()
new_list.add(10)
new_list.add(20)
new_list.add(30)


new_list.sort()

我希望它将打印列表打印列表

但显示的是。位于0x00E20BB0>的LinkedList对象 如何打印该对象?

1 个答案:

答案 0 :(得分:0)

您不是要打印出链表的节点值,而是要打印出作为类LinkedList对象的sort()函数的返回值。

如果要打印链接列表,则必须遍历列表并单独打印出每个节点值。

这是您如何打印链表的递归解决方案。

def print_list(head):
    if head != null:
        print(head.val)
        print_list(head.next)

您可以在调用sort函数之后调用此方法