これが私がいくつかの問題を抱えているコードです:
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のメモリ、つまりcurrent.nextが上書きされませんか?プログラムはどのようにして以前のノードのメモリを持つことができますか?
あなたより。
Currentは、Nodeオブジェクトを指すローカル変数です。currentを上書きしてもノードは破壊されず、現在のポイントが他の何かを指すようになります。電流が指しているものへの参照がある限り、あなたは大丈夫です。この場合、頭を抱えているので、いつでもリストを操作することができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加