0
私はすでにこのページで同等の問題を探していました。しかし、私はまだプログラムが私のリストの最初の要素を削除しないという問題があります。 remove()メソッドでは、head = head.next;最初の要素を削除する必要があります。リンクされたリストの最初の要素を削除してください
私はプログラムを起動した場合、出力は次のようになります。空のリスト:[5,7]の代わりに空のリストの:[6,7]
誰かがPLS要素頭部や私の実装と私のいただきました!間違っを伝えることができます。
public class HeadList {
Entry head;
Entry tail;
public HeadList() {
head = null;
tail = null;
}
public void add(int info) {
Entry p = new Entry(null, null,info);
if(head == null && tail == null){
head = p;
tail = p;
}else{
tail = tail.next = p;
}
}
public int remove(int index) {
Entry p = head;
for(int i=1; i < index; i++) {
p = p.next;
}
if(p.next != null && p.next != head){
int ausgabe = p.elem;
p.next = p.next.next;
return ausgabe;
}else if(index == 0){
int ausgabe = p.elem;
head = head.next;
return ausgabe;
}
else return 0;
}
private void setHead(Entry newHead) {
//TODO
}
public void reverse() {
//TODO
}
public String toString() {
String out = "[";
if (head != null) {
out += head.elem;
Entry tmp = head.next;
while (tmp != null) {
out = out + "," + tmp.elem;
tmp = tmp.next;
}
}
out += "]";
return out;
}
public static void main(String[] args) {
HeadList l = new HeadList();
l.add(5);
l.add(6);
l.add(7);
l.remove(0);
System.out.println("empty list: " + l);
// Test implementation
}
class Entry {
Entry first;
Entry next;
int elem;
public Entry(Entry first, Entry next, int elem) {
this.first = first;
this.next = next;
this.elem = elem;
}
}
}
に変更しました。 remove()のif関数を(p.next!= null && index!= 0)に変更しました – Philipp
あなた自身の質問に答えて答えとしてマークすることができます。 – LeHill