Entfernen Sie einen Knoten aus einer verknüpften Liste in Java
Dieses Tutorial zeigt, wie Sie einen Knoten aus einer verknüpften Liste in Java entfernen.
Entfernen Sie einen Knoten aus einer verknüpften Liste in Java
Die verknüpfte Liste ist eine Art Datenstruktur aus dem util
-Paket von Java, das die Datenstruktur der verknüpften Liste implementiert. Die verknüpfte Liste wird als lineare Datenstruktur betrachtet, bei der jedes Element ein separates Objekt mit einer Adresse und einem Datenteil ist und kein Element an der ansteckenden Stelle gespeichert wird.
Das Löschen eines Knotens aus einer verknüpften Liste kann erfolgen, indem Sie dem Prozess folgen, bei dem wir das erste Vorkommen des angegebenen Schlüssels löschen.
Hier sind die Schritte zum Löschen eines Knotens aus einer verknüpften Liste:
-
Zuerst müssen wir einen vorherigen Knoten des gegebenen Knotens finden. Das bedeutet, den Knoten zu finden, bevor der Knoten gelöscht wird.
-
Der nächste Schritt besteht darin, den Text des vorherigen Knotens zu ändern.
-
Schließlich müssen wir den Speicher für den löschbaren Knoten freigeben.
Dies ist ein iterativer Prozess, bei dem jeder Knoten mit der Methode malloc()
von C dynamisch zugewiesen wird, also müssen wir jedes Mal die Methode free()
aufrufen, um den Speicher freizugeben.
Versuchen wir ein Beispiel, um einen Knoten aus der angegebenen verknüpften Liste in Java zu löschen:
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();
}
}
}
Der obige Code fügt zuerst die Knoten zur verknüpften Liste hinzu und löscht dann den Knoten am Ende der Liste. Siehe die Ausgabe:
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
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook