2016-09-09 8 views
-1

リンクリスト内の特定のノードのデータを編集する方法はありますか?私はこの方法書き始めた:私は私のリストに4つのノードを持つ単独リンクリストを使用した編集方法の作成

public void edit(int index, String data) { 

Node pre = head; 
Node temp = null; 
for(int i=1; i <= index; i++) { 
    temp = pre; 
    pre = pre.next(); 
} 

temp.next(new Node(data)); 
pre.data(data); 
} 

を、私は、リスト内のすべての要素を印刷するとき、私はそれが唯一のショーしかし今、リスト内のインデックス1でノードを編集するには、このメソッドを使用しましたインデックス0と1のノードと2-3は表示されません。何がここでうまくいかないのかについてのヒント?

+0

最後にない要素を編集する場合、残りのノードを新しいノードに追加する必要があることを考慮してください。 <リストサイズであることを既に確認していない限り、インデックスに基づいて反復しないでください。 – ChiefTwoPencils

+0

また、tempノードも新しいノードも必要ありません。データを新しい値に設定するだけで済みます。 – ChiefTwoPencils

答えて

1

また、特定の状況を処理する必要があります。例:このコードはindex = 0では機能しません。このコードは、リンクリストサイズの例外を0にすると例外をスローします。このコードは、インデックスがリンクリストサイズより大きい場合にも例外をスローします。そしてそのようなもの

0
public void edit(int index, String data) { 

if (index==0) { 
    head.data(data); 
    return; 
} 

if (index < 0 || index > size()) { 
    throw new IndexOutOfBoundsException("Index out of bounds."); 
    } 

Node pre = head; 
Node temp = null; 
for(int i=1; i <= index; i++) { 
    temp = pre; 
    pre = pre.next; 
} 

Node newNode = new Node(data); 
temp.next(newNode); 
newNode.next(pre.next); 
} 

@MustafaAkıllıこのような何か?

関連する問題