Linked List Implementation

Run Settings
LanguageC++
Language Version
Run Command
#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(); }
Editor Settings
Theme
Key bindings
Full width
Lines