私はあなたが前後に挿入することができ、存在する限りリストからノードを削除することを可能にする二重リンクリストを作成しています。問題は、それが動作しないということで、オフに与え、どちらかとNullPointerExceptionを放つか、それはちょうどそれがexist.Theコードがあるんが整数でも存在しないことを言う:Javaの二重リンクリストから任意のノードをランダムに削除するにはどうすればよいですか?
public class Numbers {
Node head = null; //Head of the list
Node tail = null; //end of the doubly list
int size = 0;
public void FrontInsert(int data) {
Node n = new Node();
if (head == null) {
head = n;
} else {
n.prev = head;
head.next = n;
head = n;
}
size++;
}
public void RearInsert(int data) {
Node n = new Node();
if (head == null) {
head = n;
tail = n;
} else {
n.next = tail;
tail.prev = n;
tail = n;
}
size++;
}
public void Delete(int x) {
if (size == 0) {
System.out.println("The list is empty.");
}
if (head.data == x) {
head = head.next;
if (head != null) {
head.prev = null;
}
size--;
return;
}
tmp = head;
while (tmp != null && tmp.data != x) {
tmp = tmp.next;
}
if (tmp == null) {
System.out.println("That integer does not exist.");
return;
}
if (tmp.data == x) {
tmp.prev.next = tmp.next;
if (tmp.next != null) {
tmp.next.prev = tmp.prev;
}
}
size--;
}
public void printList() {
while (head != null) {
System.out.print(head.data + " ");
head = head.prev;
}
}
public static void main(String[] args) {
Numbers nu = new Numbers();
}
class Node {
Node prev;
Node next;
int data;
public void Node(int data) {
this.data = data;
next = null;
prev = null;
}
}
}
あなたは 'Node'を作成するとき、あなたはそれを' data'変数を渡していません。 'node n =新しいノード(データ);'でしょうか? – ChickenFeet
私はそれを試しました、それは削除メソッドのために動作しません。私はnumbers.Nodeに互換性のないオペランド型intを得ます。 – user3394363
コードにいくつかの論理エラーがあります。自分の教育のためにできることは、IDEデバッガのコードを一度に1行ずつステップ実行し、各ステートメントの後の変数を調べて何が起きているのかを確認することです。 –