Maison > développement back-end > C++ > le corps du texte

Supprimer le premier nœud d'une liste chaînée en utilisant C++

WBOY
Libérer: 2023-09-22 09:17:08
avant
1448 Les gens l'ont consulté

Supprimer le premier nœud dune liste chaînée en utilisant C++

Étant donné une liste chaînée, nous devons supprimer son premier élément et renvoyer le pointeur vers l'en-tête de la nouvelle liste chaînée.

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
Copier après la connexion

Dans le problème donné, nous devons supprimer le premier nœud de la liste, déplacer la tête vers le deuxième élément et renvoyer la tête.

Comment trouver la solution

Dans ce problème, nous pouvons déplacer la tête vers la position suivante puis relâcher le nœud précédent.

Exemple

#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;
}
Copier après la connexion

Sortie

23 11 29 12
Copier après la connexion

Description du code ci-dessus

Il suffit de déplacer la tête vers l'élément suivant du programme, puis de supprimer l'élément précédent puis d'imprimer la nouvelle liste. La complexité temporelle globale du programme donné est O(1), ce qui signifie que notre programme ne dépend pas de l'entrée donnée, ce qui est la meilleure complexité que nous puissions atteindre.

Conclusion

Dans cet article, nous avons résolu un problème de suppression du premier nœud d'une liste chaînée. Nous avons également appris un programme C++ pour ce problème et notre approche complète pour le résoudre. Nous pouvons écrire le même programme dans d'autres langages tels que C, Java, Python et d'autres langages. Nous espérons que cet article vous a été utile.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal