0
二重リンクリストを実装するPythonクラスを作成しています。私はDLLノード自体とリストのクラスのために別個のクラスを持っています。 これは、DLLノードのための私のクラスである: クラスDLLNode:Python二重リンクリスト - insertAfterノード
def __init__(self,element,nextnode=None,prevnode=None,):
self._element = element
self._next = nextnode
self._prev = prevnode
Iは、第一出現Xの後にノードyを挿入insertAfter(self,x,y)
呼ばれるメソッドを有します。このどちらである:
if self.size != 0:
n = DLLNode(y)
if self.head._element == x:
n._next = self.head._next
self.head._next._prev = n
n._prev = self.head
self.head._next = n
self.size += 1
elif self.tail._element == x:
self.tail._next = n
n._prev = self.tail
n._next = None
self.tail = n
self.size += 1
else:
iterator = self.head._next
while iterator._next is not None:
if iterator._element == x:
n._next = iterator._next
iterator._next._prev = n
n._prev = iterator
iterator._next = n
self.size += 1
else:
iterator = iterator._next
私はしかし、この機能を実行すると、私は機能を自分自身を殺したときに、関数は、永遠にループすることが、なぜイム混乱している何かを言うdoesntのiterator._next = n
、エラーが戻って4番目の最後の行を指し、 。 が大幅にあなたがiterator
値を変更しません
while iterator._next is not None:
then
枝にループで任意のヘルプ:)
ありがとうございます。 – DecafOyster208