Se consideră o listă liniară simplu înlănțuită, alocată dinamic, în care elementele sunt de tipul declarat mai jos:
struct Nod{ int val; Nod *next; };
în care câmpul val
memorează un număr întreg, iar câmpul next
memorează adresa următorului element al listei.
Valorile din listă sunt ordonate crescător.
Cerința
Să se scrie o funcție C++ cu următorul prototip:
void FStergeDuplicate(Nod *&L);
Funcția primește ca parametru un pointer L
la o listă simplu înlănțuită care are valorile din noduri în ordine crescătoare. Funcția trebuie să elimine nodurile care conțin valori duplicate. De exemplu, dacă lista conține valorile 3,3,3,5,6,7,7,7,7,20
, atunci după eliminarea duplicatelor, lista va conține 3,5,6,7,20
.
Restricții și precizări
- numele funcției va fi
FStergeDuplicate
.
Important
Soluţia propusă va conţine definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.