リンクリストのノードを削除するための以下のコードは、削除したいインデックスの間違ったインデックスを削除するため動作しません。リンクリストからのノードの削除
class Node:
def __init__(self,data):
self.data=data
self.next=None
class LinkedList:
def __init__(self):
self.head=None
self.tail=None
def Addnode(self,data):
new_node=Node(data)
if self.head==None:
self.head=new_node
if self.tail!=None:
self.tail.next=new_node
self.tail=new_node
def removenode(self,index):
new_n=self.head
count=0
while count!=index:
new_n=new_n.next
count+=1
new_n.next=new_n.next.next
def Printlist(self):
node=self.head
while node!=None:
print(node.data)
node=node.next
List=LinkedList()
List.Addnode(1)
List.Addnode(2)
List.Addnode(3)
List.Addnode(4)
List.removenode(1)
List.Printlist()
だから、これは2である、インデックス1、であるノードを削除する必要がありますが、代わりにそれは3を除去し、そしていずれかの1,2,4ともない5を出力しますか?私はなぜこれが起こっているのか混乱していますか?
おそらくプログラミング言語タグを追加すると役に立ちます –
これはPythonでですか? –
はい、申し訳ありません。 – garfieldluva