System.out.println("insert after specified data node");
System.out.println("enter data");
int x = sc.nextInt();
Node s4 = head;
try
{
while(s4.data != x)
{
s4 = s4.next;
}
}
catch(NullPointerException e)
{
e.printStackTrace();
}
System.out.println("hi");
Node specifiedNode = new Node(x);
//s4.next = specifiedNode;
try
{
specifiedNode.next = s4.next;
s4.next = specifiedNode;
}
catch(NullPointerException e)
{
e.printStackTrace();
}
System.out.println("output after specified insertion");
Node s5 = head;
while(s5!=null)
{
System.out.println(s5.data);
s5 = s5.next;
}
これは、単一のリンク・リスト内の指定されたノードの後にデータを挿入するためのサンプルプログラムです。上記のプログラムで私の質問は、次のステートメントでnullポインタの例外が発生している理由です:
specifiedNode.next = s4.next;
s4.next = specifiedNode;
[最小限の完全で検証可能な例](http://stackoverflow.com/help/mcve)を作成してください。 –
達成しようとしていることを書いて描く必要があります。この実装は途方もないです。 – Sedrick
'while(s4.data!= x)s4 = s4.next;'基本的に、リストに 'x'がないと失敗します... NPEをキャッチして管理するべきではありません。 _ "なぜ?" _のために、あなたは値をチェックするだけですか? – AxelH