Reversing linked list

void reverse_list(Node *&head){
// the key to use three pointers: current, previous and next
Node *previous = NULL;
Node *next = NULL;
Node *current = head;
while(current){
    next = current->next; // this pointer we "reversing", so we need temp storage
    current->next = previous; // reversing
    previous = current;
    current = next;
}
head = previous;
}
Advertisements
This entry was posted in C++, Interview and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s