私は現在、指定されたターゲット整数の前にリンクリストに要素を追加できるコードを作成中です。これはこれまでのところです。ターゲット整数の前に新しい整数を追加しますか?
package node;
public class IntNode {
public int data;
public IntNode next;
public IntNode(int data, IntNode next) {
this.data = data; this.next = next;
}
public String toString() {
return data + "";
}
public static IntNode addBefore(IntNode front, int target, int newItem) {
IntNode ptr = front;
while(ptr != null)
{
if(ptr.data == target)
{
IntNode temp = new IntNode(newItem, ptr.next);
ptr.next = temp;
}
ptr = ptr.next;
}
return front;
}
public static void main(String[] args) {
IntNode L = null; //handle for the beginning of the LL
L = new IntNode(19, null);
IntNode temp = new IntNode(17, L);
L = temp;
addBefore(L, 17, 20);
traverse(L);
}
public static void traverse(IntNode front){
IntNode ptr = front; //ptr points to the first node of the LL
while(ptr != null){
System.out.print(ptr.data + " -> ");
ptr = ptr.next;
}
System.out.println("//");
}
}
もちろん、ターゲットの前に追加する代わりに、新しいノードのtempが追加されています。ポインターの方向を逆にして、ターゲット整数の前のスペースを指すように移動する方法はありますか?
あなたの[tag:javascript]質問タグを削除しました。 JavaとJavaScriptは完全に異なる2つの言語であり、質問タグと質問タイトルが質問の最も重要な部分であり、いずれかがオフの場合、正しい専門家が質問を表示することはありません。ちょうどFYI。 –
1)常に 'ptr'の後ろにある' previous'ポインタを保持します。 2)リストの最初の要素がターゲットを持つケースを処理するようにしてください。特別な処理が必要なためです。 – ajb
'static'修飾子を' addBefore() 'から削除してください。その後、パラメータリストから 'IntNode front'を削除することもできます。 'L.addBefore(17、20)'のようなものを呼び出します。また、 'addBefore()'にいくつかの変更を加える必要があります。 Javaでのオブジェクト指向プログラミングについてもっと学びましょう。 –