Maison > Java > javaDidacticiel > Exemple de code Java pour implémenter une liste chaînée inversée

Exemple de code Java pour implémenter une liste chaînée inversée

黄舟
Libérer: 2017-10-17 10:11:11
original
1535 Les gens l'ont consulté

Cet article présente principalement l'exemple de code d'implémentation de liste chaînée inversée en langage Java. L'éditeur pense que c'est plutôt bon, je vais donc le partager avec vous ici pour référence des amis qui en ont besoin.

Description du problème

Définissez une fonction qui saisit le nœud principal d'une liste chaînée, inverse la liste chaînée et génère le nœud principal de la liste inversée. Les nœuds de la liste chaînée sont les suivants :


public class ListNode {
  int val;
  ListNode next = null;
  ListNode(int val) {
    this.val = val;
  }
}
Copier après la connexion

Idée 1 :

Pour inverser la liste chaînée, pour le nœud i , nous Pour pointer son prochain vers son prédécesseur, nous devons sauvegarder le nœud prédécesseur. En même temps, si nous avons réaffecté le prochain de i, nous ne pourrons pas trouver le successeur de i. Par conséquent, avant de réaffecter, nous. je dois sauver mon successeur.

Code :


public ListNode ReverseList(ListNode head) {
    if(head == null){
      return null;
    }
    ListNode rHead = null;
    ListNode prior = null;//store prior
    ListNode q = head;//store current
    while(q != null){
      ListNode next = q.next;//store the next
      if(next == null){
        rHead = q;
      }
      q.next = prior;
      prior = q;
      q = next;
    }
    return rHead;
  }
Copier après la connexion

Idée 2 :

Utiliser l'idée de récursivité (je Je n'y ai pas encore pensé, car si la récursivité est utilisée, à chaque fois il devrait être : le premier nœud de la liste chaînée - le pointeur de queue de la liste chaînée renvoyé par récursivité, mais dans ce cas, le pointeur de tête inversé ne peut pas être obtenu.) Réfléchissons-y plus tard.

Résumé

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:php.cn
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