Wednesday, 23 January 2019

How do you write a function that can reverse a linked-list

How do you write a function that can reverse a linked-list?

Answer:

void reverselist(void) {
if(head==0) return;
if(head->next==0)
return;
if(head->next==tail)
{
head->next = 0;
tail->next = head;
} else {
node* pre = head;
node* cur = head->next;
node* curnext = cur->next;
head->next = 0;
cur-> next = head;
for(; curnext!=0; )
{
cur->next = pre;
pre = cur; cur = curnext;
curnext = curnext->next;
}
curnext->next = cur;
}

}

No comments:

Post a Comment