[英]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.