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