Bei einer verknüpften Liste müssen wir das erste Element löschen und den Zeiger auf den Kopf der neuen verknüpften Liste zurücksetzen.
Input : 1 -> 2 -> 3 -> 4 -> 5 -> NULL Output : 2 -> 3 -> 4 -> 5 -> NULL Input : 2 -> 4 -> 6 -> 8 -> 33 -> 67 -> NULL Output : 4 -> 6 -> 8 -> 33 -> 67 -> NULL
In der gegebenen Aufgabe müssen wir den ersten Knoten der Liste entfernen und den Kopf zum zweiten Element verschieben und den Kopf zurückgeben.
Bei diesem Problem können wir den Kopf in die nächste Position bewegen und dann den vorherigen Knoten loslassen.
#include <iostream> using namespace std; /* Link list node */ struct Node { int data; struct Node* next; }; void push(struct Node** head_ref, int new_data) { // pushing the data into the list struct Node* new_node = new Node; new_node->data = new_data; new_node->next = (*head_ref); (*head_ref) = new_node; } int main() { Node* head = NULL; push(&head, 12); push(&head, 29); push(&head, 11); push(&head, 23); push(&head, 8); auto temp = head; // temp becomes head head = head -> next; // our head becomes the next element delete temp; // we delete temp i.e. the first element for (temp = head; temp != NULL; temp = temp->next) // printing the list cout << temp->data << " "; return 0; }
23 11 29 12
Wir müssen nur den Kopf zum nächsten Element im Programm bewegen, dann das vorherige Element löschen und dann die neue Liste drucken. Die Gesamtzeitkomplexität des gegebenen Programms beträgt O(1), was bedeutet, dass unser Programm nicht von der gegebenen Eingabe abhängt, was die beste Komplexität darstellt, die wir erreichen können.
Das obige ist der detaillierte Inhalt vonLöschen Sie den ersten Knoten einer verknüpften Liste mit C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!