Quick actions

cmd+k|ctrl+k

Navigation

Languages

reverseLinkedList_iterative

Snippet info

Language

Cpp

Visibility

public

Author

preeti.gaur1790

Created

2022-05-29T07:55:28.678818Z

Updated

2022-05-29T07:55:28.678818Z

#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;
}
INFO