Quick actions

cmd+k|ctrl+k

Navigation

Languages

Linked List Implementation

Snippet info

Language

Cpp

Visibility

public

Author

amangoyal1727

Created

2021-06-18T10:10:42.119626Z

Updated

2021-06-18T10:50:59.238531Z

#include <iostream>
using namespace std;
class Node{
  public:
      int data;
      Node *next;
};

class linkedlist{
  public: 
      Node *head = NULL;
      Node *tail = NULL;
      int size =0;
      
      void addLast(int val){
          
          Node *temp = new Node();
          temp->data = val;
          temp->next = NULL;
          
          if(size == 0){
            head = temp;
            tail = temp;
          }else{
              tail->next = temp;
              tail = temp;
          }
          size++;
    }
      
      void print(){
          Node *temp = head;
          while(temp != NULL){
              cout<<temp->data<<" ";
              temp = temp->next;
          }
      }
      
     private:
        Node *getNode(int idx){
            
            Node *temp = head;
            if(idx < 0 || idx >= size){
                return NULL;
            }
            
            while(idx){
                temp = temp->next;
                idx--;
            }
            
            return temp;

        }
     
     public:  
      void reverseiteratively(){
          
          int i = 0;
          int j= size-1;
          
          while(i<j){
              Node *left = getNode(i);
              Node *right = getNode(j);
              int temp = left->data;
              left->data = right->data;
              right->data = temp;
              i++;
              j--;
          }
          
      }
      
      void reversebypointer(){
          Node* temp = NULL;
          Node* temp1 = head;
          while(temp1 != NULL){
              Node *safe = temp1->next;
              temp1->next = temp;
              temp = temp1;
              temp1 = safe;
          }
          Node *saver = head;
          head = temp;
          tail = saver;
      }
  
    
};

int main() {
    
    linkedlist L;
    L.addLast(4);
    L.addLast(3);
    L.addLast(2);
    L.addLast(1);
    L.reversebypointer();
    L.print();
    
}
INFO