如何在0x01BA8A90>处打印<\uu main\uuuuuuu.LinkedList对象?

2024-06-24 13:27:41 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能解释为什么要给我看以及怎么打印吗? 我做错了什么?如何打印此对象引用?

我还尝试打印新的\u列表(inside sort())但仍然是一样的 我正在打印列表,为什么不显示

我知道以前有人问过我和这件事有关的事,但我还是不明白

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()

我以为它会打印一个列表

但它正在显现<main.LinkedList对象位于0x00E20BB0>; 如何打印此对象


Tags: selfaddnodenewdatasizegetreturn
1条回答
网友
1楼 · 发布于 2024-06-24 13:27:41

您没有打印出链表的节点值,而是打印出sort()函数的返回值,该函数是LinkedList类的对象

如果要打印链表,则必须遍历链表并分别打印每个节点值

下面是如何打印链表的递归解决方案

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

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

相关问题 更多 >