Python 链表查询

标签 python object linked-list

这是我遇到一些问题的代码:

class Node(object):
    def __init__(self, data):
        self.data = data
        self.next = None

class Solution(object):
    def insert(self, head, data):
        if head == None:
            head = Node(data)
        else:
            current = head
            while current.next:
                current = current.next
            current.next = Node(data)
        return head

    def display(self, head):
        current = head
        while current:
            print(current.data)
            current = current.next

代码本身工作正常,但我无法理解插入函数。最初,

Head == None

因此,用参数数据创建了一个新节点,这将是从现在开始的新头。因此,如果我尝试向此列表添加新节点,则会触发 else 并生成新节点:

current.next 

已创建。到目前为止,一切都很好。现在,如果我想添加另一个节点,else 条件将再次触发,但正在创建一个新的当前对象,这不会覆盖旧当前对象的内存,从而覆盖 current.next 吗?程序如何拥有之前节点的内存?

比你。

最佳答案

Current 是一个指向 Node 对象的局部变量。覆盖 current 不会破坏 Node,它只是使 current 指向其他东西。只要你有一个当前用来指向的内容的引用,就可以了。在这种情况下,由于您能保持头脑清醒,因此您始终能够按照自己的方式完成列表。

关于Python 链表查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275181/

相关文章:

c# - 返回对象的实例

c++ - 将指针设置为 NULL 会影响您指向的原始项目吗?

c++ - 为什么打印单向链表时有一个虚拟节点?

java - 如何在Java Struts2中接收模型中的所有请求参数?

python - Firebase 函数 gen2 python init 不起作用

python - 使用 multiprocessing.Process 时 Tkinter GUI 卡住

c++ - 从 Python 解释器调用 SWIG 生成的代码

javascript - 对象属性的可视化显示 - 如何

c - 从文件读取到链表

python - pylab中的上下轴(例如w/不同单位)(或左右)