Reverse double linked list
//recursion
list* rev(list* head)
{
if(!head) return head;
if(!head->next) return head;
list* tail=rev(head->next);
head->next->prev=head->next->next;
head->next->next=head;
head->prev=head->next;
head->next=null;
return tail;
}
list* foo(list* head)
{
list* curr=head;
list* prev=next=NULL;
while(curr)
{
next=curr->next;
curr->next=prev;
curr->prev=next;
prev=curr;
curr=next;
}
return prev;
}
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment