top of page

Reverse Single LinkedList using class



#include<iostream>
using namespace std;

class node {
    public:
        int info;
        node *next;
};

class list {
    private:
        node *head;
    public:
        list()
        {
            cout<<"Inside constructor"<<endl;
            head = NULL;
        }
        void createlist(int data)
        {
            node *newnode = new node;
            newnode->info  = data;
            if(head == NULL)
            {
                newnode->next = NULL;
                head = newnode;
            }
            else
            {
                node *temp = head;
                while(temp->next!= NULL)
                {
                    temp = temp->next;
                }
                temp->next = newnode;
                newnode->next = NULL;
            }
            //return head;
        }
        void reverseList()
        {
            node *temp;
            node *temp1;
            node *temp2;
            temp1 = NULL;
            temp = head;
            while(temp!=NULL)
            {
                temp2 = temp->next;
                temp->next = temp1;
                temp1 = temp;
                temp = temp2;
            }
            head = temp1;
            //return temp1;
        }
        void display()
        {
            node *temp = head;
            while(temp!= NULL)
            {
                cout<<temp->info<<endl;
                temp=temp->next;
            }
        }
};

int main()
{
    list *obj = new list;
    obj->createlist(10);
    obj->createlist(15);
    obj->createlist(20);
    obj->createlist(13);
    obj->display();
    cout<<"After Reverse List"<<endl;
    obj->reverseList();
    obj->display();
    return 0;
}

output:

Inside constructor 10 15 20 13 After Reverse List 13 20 15 10

Komentar


bottom of page