Reverse doubly linked list C++ recursion

Inorder successor of node in a Binary Tree
Check if a Binary Tree is a Sum Tree or not
45

Reversing a doubly linked list

Given a doubly linked list. Write a function that accepts a pointer to the head of the list and reverse the list.

The structure of the node in a doubly linked list is as below:

struct Node { int data; Node* prev; // pointer to the previous node in the list Node* next; // pointer to the next node in the list };

Solution:

I have earlier written post about reversing a singly linked list iteratively and recursively.

Reversing a doubly linked list is much simpler as compared to reversing a singly linked list. We just need to swap the prev & next pointers in all the nodes of the list and need to make head point to the last node of original list [which will be the first node in the reversed list].

Here is the code

void reverseDLL[Node*& head] { while[head] { // Swapping the prev & next pointer of each node Node * t = head->prev; head->prev = head->next; head->next = t; if[head->prev != NULL] head = head->prev; // Move to the next node in original list else break; // reached the end. so terminate } }

Please let me know your comments / feedback / suggestions
-

4 Comments

  1. Anonymous says:
    May 8, 2013 at 11:15 am

    thank you! it's great.

    Reply
  2. Anonymous says:
    May 8, 2013 at 11:15 am

    thank you! it's great.

    Reply
  3. krupa says:
    September 29, 2014 at 11:37 pm

    Its awesome! Thanks a lot

    Reply
  4. Sara Mohammed says:
    July 13, 2016 at 7:35 am

    thank you it's easy way

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Comment

Name *

Email *

Website

Save my name, email, and website in this browser for the next time I comment.

Current ye@r *
Leave this field empty

Video liên quan

Chủ Đề