Bonjour,
Je n'arrive pas à créer un algo itératif pour supprimer toutes les occurrences d'un element dans une liste chainée.

voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
class Liste{
 int element;
Liste suivant;
....
methode qui affiche une liste...
 
 }//fin class
public class Exple{
 public static void(String [] args){
 Liste ln=new Liste(1,new Liste(2,new Liste(3,new Liste(1, new Liste(1,new Liste(4,null)))));
 }
}
L'affichage avant suppression:
1 2 3 1 1 4
après suppression
je devrais avoir uniquement: 2 3 4
or je n'arrive à supprimer que le 1er élement.
Voici la methode:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
public Liste suppression(int e){
Liste parcours=this;
Liste precedent=null;
 
//tant que je ne suis pas à la fin de la liste et que je n'ai pas trouve e
while(parcours!=null && parcours.element !=e){
//je parcours la liste en avançant mes 2 pointeurs
precedent=parcours;
parcours=parcours.suivant;
}
//je sors de la boucle si  j'ai trouvé e et que je ne suis pas en fin de liste
if(parcours!=null && parcours.element==e){
  if(precedent==null) //si la liste n'a qu'un élement {
     return parcours.suivant; //je retourne l'element e
   }
 else{
    precedent=precedent.suivant;
    return this;
 }
else return this;
}
Je vous remercie d'avance, mais je n'y arrive pas