Se consideră o listă liniară simplu înlănțuită, alocată dinamic, în care elementele sunt de tipul declarat mai jos:
struct Nod
{
int info;
Nod *leg;
};
în care câmpul info memorează un număr întreg. Lista conține cel puțin trei noduri.
Cerinţa
Să se scrie o funcție C++ cu următorul prototip:
void FlsiInv(Nod* &head);
Lista are cel puțin trei noduri și are adresa primului element memorată în pointerul head. Funcția inversează ordinea elementelor din listă, modificând direct legăturile dintre noduri, fără a aloca noduri noi în memorie. De exemplu, dacă lista conține inițial valorile: 1,2,3,4,5,6, atunci după inversare, lista va fi: 6,5,4,3,2,1. Rețineți că la final head va memora adresa nodului care inițial era ultimul, iar acum a devenit primul nod.
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.