リンクリストをインプレースで反転するJava関数を作成しています。私はJavaを初めて使用しますが、以下の関数のバグを正常にデバッグできません。IDEは、私が理解できないようなNullPointerExceptionを返します。どんな助けでも大歓迎です。
public listNode reverseLinkedList(listNode head)
{
listNode reversedLinkedList = head;
listNode temp = null;
while (reversedLinkedList != null) {
reversedLinkedList.setNext(temp);
temp = reversedLinkedList;
reversedLinkedList = reversedLinkedList.getNext();
}
return reversedLinkedList;
}
テストのために、8つのリンクされたノードですでに初期化されたリンクリストがあります。上記の関数では、各ノード間で次のポインターを交換しreversedLinkedList
、リンクリストに沿ってポインターを移動しようとしています。
編集:発生場所を特定するためにデバッガーを使用することを提案する人もいNullPointerException
ます。私はすでにそれをしました。これは、ループreversedLinkedList = reversedLinkedList.getNext();
の2回目の反復の行で発生します。while
テスト用に8つのポインターでリンクリストを初期化しました。ループはwhile
、2番目のノードに移動する代わりに、代わりにnull
ポインターを参照します。一時変数と関係があるかもしれませんが、よくわかりません。