我正在创建一个链表实现,我无法修复这个错误,即必须双击node.val.val来打印数据,而不是内存地址.

以下是我的实现:

class LinkedNode:
    def __init__(self, val, nxt=None):
        self.val = val
        self.nxt = nxt

class LinkedList:
    def __init__(self, head=None):
        self.head = head

    def append(self, new_val):
        node = LinkedNode(new_val, None)
        if self.head:
            curr = self.head
            while curr.nxt:
                curr = curr.nxt
            curr.nxt = node
        else:
            self.head = node

    def print(self):
        curr = self.head
        while curr:
            **print(curr.val)**
            curr = curr.nxt


l1 = LinkedList()
l1.append(LinkedNode(2))
l1.append(LinkedNode(3))
l1.append(LinkedNode(4))
l1.print()

当打印函数中的line为"打印(当前值)"时,该函数打印内存地址.当line为"print(curr.val.val)"时,函数打印2,3,4.

有人有可能的解决方案吗?

推荐答案

因为在这些线中,你要创建LinkedNode个对象,而不是值!

l1.append(LinkedNode(2))
l1.append(LinkedNode(3))
l1.append(LinkedNode(4))

之后,您在append函数的范围内创建了一个新的LinkedNode(LinkedNode(2), None).

将其更改为:

l1.append(2)
l1.append(3)
l1.append(4)

Python相关问答推荐

Tkinter滑动条标签.我不确定如何删除滑动块标签或更改其文本

覆盖Django rest响应,仅返回PK

有条件地采样我的大型DF的最有效方法

如何计算列表列行之间的公共元素

将HLS纳入媒体包

点到面的Y距离

使用新的类型语法正确注释ParamSecdecorator (3.12)

根据另一列中的nan重置值后重新加权Pandas列

如何让剧作家等待Python中出现特定cookie(然后返回它)?

如何在类和classy-fastapi -fastapi- followup中使用FastAPI创建路由

如何使用它?

给定高度约束的旋转角解析求解

计算天数

try 检索blob名称列表时出现错误填充错误""

在Python中从嵌套的for循环中获取插值

Discord.py -

如果不使用. to_list()[0],我如何从一个pandas DataFrame中获取一个值?

Polars表达式无法访问中间列创建表达式

操作布尔值的Series时出现索引问题

利用SCIPY沿第一轴对数组进行内插