ノードの特定の位置に文字列を追加しようとします。何らかの理由で、ある位置に新しい文字列を入力しようとすると、すでにリストにあった既存のデータがすべて消去されます。何が間違っているのか分かりません。insertAtPosメソッドDoublyLinkedList
public void insertAt(String data, int pos)
{
if(head == null)
insertAtStart(data);
else if(pos < 1 || pos > size)
System.out.println("Position Out Of Bounds");
Node current = head;
int i = 1;
while(i < pos)
{
current = current.next;
i++;
}
if(current.prev == null)
{
Node newLink = new Node(data);
current.prev = newLink;
head = newLink;
}
else
{
Node newLink = new Node(data);
current.prev.next = newLink;
current.prev = newLink;
}
size++;
}
「pos」を0ではなく、1で始めるのが一般的です。同じことをお勧めします。 –
私のプロジェクトでは、1から始める必要があります。その理由は0で始まっていませんでした。 – bubbles2189
「範囲外」の場合、無効なインデックスに継続して追加するのではなく、戻りたいと考えています。 シングルリターンポイント(優良事例IMO)を気にするなら、 'println'の後の部分を' else'ボディに移動することができます。 –