Comment inverser une liste chaînée?

 Node reverse(Node head) {
    Node previous = null;
    Node current = head;
    Node forward;

    while (current != null) {
        forward = current.next;
        current.next = previous;
        previous = current;
        current = forward;
    }

    return previous;
}

Comment exactement est-il renverser la liste? Je qu'il définit d'abord la deuxième noeud forward. Puis il dit current.next est égal à un null nœud previous. Puis il dit previous est maintenant current. Enfin current devient forward?

Je n'arrive pas à saisir cela et comment sa marche arrière. Quelqu'un peut-il expliquer comment cela fonctionne?

  • C'est python?
  • from __future__ import braces ?
  • de ma faute..fixe à la java!
  • 1. Ce code ne semble pas être python... 2. liste inverse est un algorithme de base, vous pouvez trouver beaucoup de matériel connexe sur le web
  • Lorsque vous avez un bug ou ne peuvent pas comprendre ce que votre code est fait, la première chose que vous devez faire est d'utiliser votre débogueur. (Qu'est ce que c'est)
  • Ce code est Jathon
  • Je voudrais attirer un peu 3-noeud lié liste sur une feuille de papier, et il suffit d'aller dans l'algorithme, étape par étape, voir ce qui se passe. On pourrait faire la même chose dans un débogueur, mais de le faire sur papier va vous forcer à bien réfléchir sur la façon dont chaque pièce de l'etat est en train de changer.
  • Rappelez-vous la première, il faut stocker le nœud suivant(forward), afin de préserver le lien
  • Techlead est que vous???

InformationsquelleAutor user1176235 | 2012-01-31