Bonjour, je débute avec les piles et les listes chainées et je voudrais supprimer le dernier élement de la liste

j'arrive à modifier les elements mais pas à les supprimer . voila le code.

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <conio.h>
#include <stdio.h>
#include <alloc.h>
 
 
void main ()
 
{
 
 int i;
 
 struct liste
 
      {  int nombre;
 
    struct liste *suivant;
 
      }depart,*noeud;
 
clrscr();
 depart.suivant=NULL;    // liste vide
 
 noeud=&depart; 
 
 
 
 for (i=1; i<11;i++)
	     { noeud->suivant= (struct liste*) malloc (sizeof(struct liste));  
	  noeud=noeud->suivant;
          noeud->nombre=i;      
          noeud->suivant=NULL; //noeud suivant= … Null pour terminer la liste
             }
 
 
 
 noeud=depart.suivant;
 
 while (noeud) 
 
   { printf("%d\n",noeud->nombre);
   noeud=noeud->suivant; // passe au noeud suivant.
 
   }
 
 getch();
 
noeud=depart.suivant;
 
 
    while (noeud)
 
		{ if (noeud->suivant==NULL)
 
					{ noeud=NULL;
 
                                        }
		  else  { noeud=noeud->suivant;
 
			}
 
                }
 
noeud=depart.suivant; //adresse de d‚part
 
clrscr();
while (noeud)
 
{
printf("%d\n",noeud->nombre);
noeud=noeud->suivant;
 
}
 
getch();
 
}

Je boucle dans ma liste jusqu'au dernier de la liste, ensuite j'affecte à son adresse la valeur NULL. Apparemment ce n'est pas la bonne méthode

Merci à vous.