0
votes

Comment puis-je convertir ce morceau de code en boucle?

Comment puis-je convertir ce code en boucle? J'ai top défini comme une variable d'instance de type nodaling xxx


5 commentaires

nodestring suivant = haut; faire résultat.Ajouter (0, Next.getData ()); tandis que ((suivant = Next.getNext ())! = null);


@Scarywombat Pouvez-vous expliquer plus loin?


En fait, le commentaire @shmosel est assez bon


@shmosel J'ai fait des mods sur le morceau de code que vous avez fourni mais le résultat est en sens inverse. E.g {"A", "B", "C"} a donné {"C", "B", "A"}}


C'est ce que votre code fait.


3 Réponses :


1
votes

Vous pouvez construire un tableau, puis l'achète en arrière. Quelque chose comme, xxx


7 commentaires

J'ai le tableau que je veux cloner dans la fonction principale


@scott Le code que j'ai posté ici est équivalent au code de votre question.


@Elliottfrisch est l'ordre d'itération nécessaire?


@Scarywombat Non, mais vous auriez besoin de construire le tableau en sens inverse (en supposant qu'il est pertinent pour le code d'origine de l'OP).


Le code posté dans le commentaire de @shmosel a travaillé correctement pour moi, avec quelques modifications. Je ne voulais pas passer un tableau comme paramètre.


Et où suis-je en train de passer un tableau comme un paramètre? La construction on ne nécessite pas localement cela. Mais si le code SHMOSEL fonctionne, tout est bon.


Mon programme est assez vaste, je ne serais donc pas en mesure de mettre en œuvre votre code sans changer certaines parties de la mienne. Merci beaucoup!



0
votes

solution à l'aide de la récursion.

List result = func(top, new ArrayList());


0 commentaires

0
votes

Vous pouvez utiliser la méthode suivante pour obtenir la liste des nœuds. Vous devez envoyer le nœud supérieur à la méthode et renvoyera la liste des nœuds. Cette méthode est écrite pour s'assurer que la logique exacte que vous avez mentionnée, qui consiste à ajouter le nœud supérieur au bas et aux nœuds enfants en haut.

   private List<NodeString> generateNodeList(NodeString topNode) {
        List<NodeString> result = new LinkedList<>();
        NodeString currentNode = topNode;

        while(currentNode != null) {
            result.add(0, currentNode);
            currentNode = currentNode.getData();
        }

        return result;
    }


0 commentaires