Je travaille sur un projet Java pour une classe depuis un moment maintenant. C'est une implémentation d'une liste chaînée (appelée ici AddressList, contenant des nœuds simples appelés ListNode). Le hic, c'est que tout devrait être fait avec des algorithmes récursifs. J'ai pu tout faire sans une seule méthode:public AddressList reverse()    
ListNode:
public class ListNode{
  public String data;
  public ListNode next;
}À l'heure actuelle, ma reversefonction appelle simplement une fonction d'assistance qui prend un argument pour autoriser la récursivité.
public AddressList reverse(){
  return new AddressList(this.reverse(this.head));
}Avec ma fonction d'assistance ayant la signature de private ListNode reverse(ListNode current).
Pour le moment, je le fais fonctionner de manière itérative en utilisant une pile, mais ce n'est pas ce que la spécification exige. J'avais trouvé un algorithme en C qui l'inversait de manière récursive et le convertissait manuellement en code Java, et cela fonctionnait, mais je ne l'avais pas compris.
Edit: Nevermind, je l'ai compris entre-temps.
private AddressList reverse(ListNode current, AddressList reversedList){
  if(current == null) 
      return reversedList;
  reversedList.addToFront(current.getData());
  return this.reverse(current.getNext(), reversedList);
}Pendant que je suis ici, est-ce que quelqu'un voit des problèmes avec cet itinéraire?