reverseLinkedList_iterative

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> using namespace std; class Node{ public : int data; Node *next; Node () { data = 0; next = NULL; } Node(int data) { this->data = data; this->next = NULL; } }; Node* reverseLinkedList(Node *head){ if(head == NULL || head->next == NULL) { return NULL; } Node *current = head; Node *prev = NULL, *next = NULL; while(current != NULL) { next = current->next; current->next = prev; prev = current; current = next; } head = prev; return head; } void traverse(Node *head) { if(head == NULL) { cout<< "List is empty"; return; } Node *temp = head; while(temp != NULL) { cout << temp->data << endl; temp = temp->next; } } int main() { Node *head = new Node(1); head->next = new Node(2); head->next->next = new Node(3); traverse(head); cout << "Reversed Linked List" <<endl; head = reverseLinkedList(head); traverse(head); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines