こんばんは
自分で単一のリンクリストを実装しようとしていますが、検索メソッドを作成したいときに問題が発生しました。明らかに、ノード(特定の場所にノードを挿入するために使用される)を検索する場合は、適切な場所に到達したかどうかを確認するためにいくつかの値を評価する必要があります。私のノードには識別子としてデータフィールドしかないことを考えると、それを使用する以外の方法はありません。ただし、データフィールドは一意ではないため、複数のノードが適格である可能性があります。
次のリストについて考えてみます。5、7、2、8、3、1、6、5、8、4、2。リストのどこかにノードを追加したい場合(たとえば、値が8のノードの後)、次のようになります。リストを調べて、「8」が最初に出現した後に新しいノードを追加します。2nd 8の後に挿入したい場合はどうすればよいですか?
これは、単一のリンクリストでも可能ですか?
それ以外に、「removeLast()」メソッドについてフィードバックをもらいたいのですが、これは私が望んでいることを実行していないようです(リストから最後のノードを削除します)。リストの値が1つしかない場合、コードが機能しないことはわかっています。最後のノードを削除する一般的なコードが機能したらすぐに調べます。
私のコードはここにあります。
コードで編集:
public class SingleLinkedList {
public void deleteLast() {
if (lastNode != null) {
Node currentNode = firstNode;
while (currentNode != null) {
Node nextNode = currentNode.getNextNode();
Node nextNextNode = nextNode.getNextNode();
if (nextNextNode == null) {
nextNextNode = null;
lastNode = nextNode;
}
}
listSize--;
}
}
}