HOWTO · Java
Java でリンク リストからノードを削除する
このチュートリアルでは、Java でリンク リストからノードを削除する方法を示します。
このページの内容
このチュートリアルでは、Java でリンク リストからノードを削除する方法を示します。
Java でリンク リストからノードを削除する
リンク リストは、リンク リスト データ構造を実装する Java の util パッケージのデータ構造の一種です。 リンクされたリストは線形データ構造と見なされ、各要素はアドレスとデータ部分を持つ個別のオブジェクトであり、要素は感染場所に保存されません。
リンクされたリストからノードを削除するには、特定のキーの最初の出現を削除するプロセスに従います。
リンクされたリストからノードを削除する手順は次のとおりです。
-
まず、指定されたノードの前のノードを見つける必要があります。 これは、ノードが削除される前にノードを見つけることを意味します。
-
次のステップは、前のノードのテキストを変更することです。
-
最後に、削除可能なノードのメモリを解放する必要があります。
これは、C の malloc() メソッドを使用してすべてのノードが動的に割り当てられる反復プロセスであるため、毎回 free() メソッドを呼び出してメモリを解放する必要があります。
Java で指定されたリンク リストからノードを削除する例を試してみましょう。
package delftstack;
public class Example {
class DemoNode {
int NodeData;
DemoNode NextNode;
public DemoNode(int NodeData) {
this.NodeData = NodeData;
this.NextNode = null;
}
}
// head and tail node
public DemoNode HeadNode = null;
public DemoNode TailNode = null;
// to add new nodes
public void Add_Node(int NodeData) {
DemoNode NewNode = new DemoNode(NodeData);
if (HeadNode == null) {
HeadNode = NewNode;
TailNode = NewNode;
} else {
TailNode.NextNode = NewNode;
TailNode = NewNode;
}
}
// To delete nodes
public void DeleteNode() {
if (HeadNode == null) {
System.out.println("List is empty");
return;
} else {
// Checks if the list contains only one element
if (HeadNode != TailNode) {
DemoNode current = HeadNode;
// Iterate through the list till the second last element
while (current.NextNode != TailNode) {
current = current.NextNode;
}
TailNode = current;
TailNode.NextNode = null;
} else {
HeadNode = TailNode = null;
}
}
}
// To display the node
public void DisplayNode() {
DemoNode CurrentNode = HeadNode;
if (HeadNode == null) {
System.out.println("List is empty");
return;
}
while (CurrentNode != null) {
System.out.print(CurrentNode.NodeData + " ");
CurrentNode = CurrentNode.NextNode;
}
System.out.println();
}
public static void main(String[] args) {
Example Linked_List = new Example();
// Adds nodes to the list
Linked_List.Add_Node(1);
Linked_List.Add_Node(2);
Linked_List.Add_Node(3);
Linked_List.Add_Node(4);
System.out.println("The Original List is: ");
Linked_List.DisplayNode();
while (Linked_List.HeadNode != null) {
Linked_List.DeleteNode();
System.out.println("The list after Deleting a Node: ");
Linked_List.DisplayNode();
}
}
}
上記のコードは、最初にノードをリンク リストに追加し、次にリストの最後からノードを削除します。 出力を参照してください。
The Original List is:
1 2 3 4
The list after Deleting a Node:
1 2 3
The list after Deleting a Node:
1 2
The list after Deleting a Node:
1
The list after Deleting a Node:
List is empty