Cześć! Mam za zadania przenieść ostatni element z listy jednokierunkowej na pierwsze miejsce.
Najpierw znajduję ostatni element listy, a następnie ustawiam sobie wskaźnik na przedostatni element.
void Przenies(node*&H){
if(H != NULL && H->next != NULL){
node*p = H;
while(p->next != NULL){
p = p->next;
};
node*e = new node;
e->next = p;
p->next = H;
p->next->val = H->val;
p->next->next = H->next;
e->next = NULL;
}
}
Oto fragment kodu, który nietety nie działa. Czy ktoś umiałby wytłumaczyć mój błąd w rozumowaniu?
Z góry bardo dziękuję !