[英]Python Linked List Query
这是我遇到一些问题的代码:
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 过去指向的引用的参考,就可以了。 在这种情况下,因为您保持头脑清醒,所以您总是能够按照自己的方式浏览列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.