私が取り組んでいるカスタムのリンクリストラボでは、このメソッドを追加しています。新しいノードを挿入すると、値を1つのインデックスだけシフトする方法がわかりません。ここに私のソースコードです。カスタムLinkedListクラスのメソッドを追加
public void add(int index, Object element) throws IndexOutOfBoundsException {
if(index > size() || index < 0) {
throw new IndexOutOfBoundsException();
}
ListNode newNode = new ListNode(element, null);
if(head == null) {
head = newNode;
return;
}
ListNode nextNode = head.nextNode;
ListNode currNode = head;
int i = 0;
while(currNode!= null) {
if(index == i) {
break;
}
currNode = nextNode;
//Breaks down here with null pointer exception
nextNode = nextNode.nextNode;
}
currNode = newNode;
currNode.nextNode = nextNode;
}
LinkedListは、配列と異なり、理想的にはインデックス番号を持たないようにしてください。これがLinkedListの背後にあるコンセプトです。 –
@PritamBanerjee理由を説明できますか?私は最近、このリンクリスト関数をcppにビルドします。ありがとう – Omore
リンクされたリストは、束ねられたノードの束です。各ノードは、次のノード(単一リンクリスト)についてのみ知っています。 – jmw5598