class Node: def __init__(self, value): self.data = value self.next = None class SinglyLinkedList: nodes = [] def __init__(self): self.head = None self.tail = None def insertHead(self, value): node = Node(value) if(self.head is None): self.head = node self.tail = node return node.next = self.head self.head = node def insertTail(self, value): node = Node(value) if(self.tail is None): self.head = node self.tail = node return self.tail.next = node self.tail = node def displayNodes(self): temp = self.head while (temp is not None): self.nodes.append(temp.data) temp = temp.next return self.nodes ### Object 1obj1 = SinglyLinkedList()obj1.insertHead(8)obj1.insertHead(7)obj1.insertHead(5)obj1.insertTail(30)print(obj1.displayNodes())### Object 2obj2 = SinglyLinkedList()obj2.insertHead(20)obj2.insertHead(10)print(obj2.displayNodes())### Object 3obj3 = SinglyLinkedList()obj3.insertHead(50)obj3.insertHead(22)obj3.insertHead(19)print(obj3.displayNodes())print(obj3.nodes)### Object 4obj4 = SinglyLinkedList()obj4.insertHead(45)obj4.insertHead(40)obj4.insertHead(35)obj4.insertHead(28)print(obj4.displayNodes())輸出python flatten_LL.py[5, 7, 8, 30][5, 7, 8, 30, 10, 20][5, 7, 8, 30, 10, 20, 19, 22, 50][5, 7, 8, 30, 10, 20, 19, 22, 50][5, 7, 8, 30, 10, 20, 19, 22, 50, 28, 35, 40, 45]這是單向鏈表的代碼。我創(chuàng)建了四個(gè)實(shí)例,并將鏈表值存儲(chǔ)在名為“nodes”的列表變量中。對(duì)于每個(gè)實(shí)例,我都返回該列表變量“節(jié)點(diǎn)”。如您所見(jiàn),從第二個(gè)實(shí)例的輸出來(lái)看,前一個(gè)實(shí)例的節(jié)點(diǎn)顯示仍保持原樣。我想知道為什么會(huì)這樣,因?yàn)閷?duì)于每個(gè)實(shí)例,存儲(chǔ)都是單獨(dú)分配給該實(shí)例的。
為什么類(lèi)中名為 nodes 的列表變量采用類(lèi)的前一個(gè)實(shí)例的輸出?
至尊寶的傳說(shuō)
2023-05-09 15:32:15