// Reverse a linked list by Iterative Method
#include <iostream>
using namespace std;
struct Node {
int data;
struct Node* next;
Node( int data)
{
this- > data = data;
next = NULL ;
}
} ;
struct LinkedList {
Node* head;
LinkedList( ) { head = NULL ; }
void reverse( )
{
Node* current = head;
Node * prev = NULL , * next = NULL ;
while ( current ! = NULL ) {
next = current- > next;
current- > next = prev;
prev = current;
current = next;
}
head = prev;
}
void print( )
{
struct Node* temp = head;
while ( temp ! = NULL ) {
cout << temp- > data << " " ;
temp = temp- > next;
}
}
void push( int data)
{
Node* temp = new Node( data) ;
temp- > next = head;
head = temp;
}
} ;
int main( )
{
LinkedList ll;
ll.push ( 345 ) ;
ll.push ( 89 ) ;
ll.push ( 77 ) ;
ll.push ( 65 ) ;
cout << "Given linked list\n " ;
ll.print ( ) ;
ll.reverse ( ) ;
cout << "\n Reversed linked list \n " ;
ll.print ( ) ;
return 0 ;
}
// mam iam just tried these programs as per the w3schools if i revised the previoous topics i can make it in efective way please provide the recording of week 2-2 session mam
Ly8gUmV2ZXJzZSBhIGxpbmtlZCBsaXN0IGJ5IEl0ZXJhdGl2ZSBNZXRob2QKI2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3QgTm9kZSB7CiAgICBpbnQgZGF0YTsKICAgIHN0cnVjdCBOb2RlKiBuZXh0OwogICAgTm9kZShpbnQgZGF0YSkKICAgIHsKICAgICAgICB0aGlzLT5kYXRhID0gZGF0YTsKICAgICAgICBuZXh0ID0gTlVMTDsKICAgIH0KfTsKc3RydWN0IExpbmtlZExpc3QgewogICAgTm9kZSogaGVhZDsKICAgIExpbmtlZExpc3QoKSB7IGhlYWQgPSBOVUxMOyB9CiAgICB2b2lkIHJldmVyc2UoKQogICAgewogICAgICAgIE5vZGUqIGN1cnJlbnQgPSBoZWFkOwogICAgICAgIE5vZGUgKnByZXYgPSBOVUxMLCAqbmV4dCA9IE5VTEw7CiAgICAgICAgd2hpbGUgKGN1cnJlbnQgIT0gTlVMTCkgewogICAgICAgICAgICBuZXh0ID0gY3VycmVudC0+bmV4dDsKICAgICAgICAgICAgY3VycmVudC0+bmV4dCA9IHByZXY7CiAgICAgICAgICAgIHByZXYgPSBjdXJyZW50OwogICAgICAgICAgICBjdXJyZW50ID0gbmV4dDsKICAgICAgICB9CiAgICAgICAgaGVhZCA9IHByZXY7CiAgICB9CiAgICB2b2lkIHByaW50KCkKICAgIHsKICAgICAgICBzdHJ1Y3QgTm9kZSogdGVtcCA9IGhlYWQ7CiAgICAgICAgd2hpbGUgKHRlbXAgIT0gTlVMTCkgewogICAgICAgICAgICBjb3V0IDw8IHRlbXAtPmRhdGEgPDwgIiAiOwogICAgICAgICAgICB0ZW1wID0gdGVtcC0+bmV4dDsKICAgICAgICB9CiAgICB9CiAgICB2b2lkIHB1c2goaW50IGRhdGEpCiAgICB7CiAgICAgICAgTm9kZSogdGVtcCA9IG5ldyBOb2RlKGRhdGEpOwogICAgICAgIHRlbXAtPm5leHQgPSBoZWFkOwogICAgICAgIGhlYWQgPSB0ZW1wOwogICAgfQp9OwppbnQgbWFpbigpCnsKICAgIExpbmtlZExpc3QgbGw7CiAgICBsbC5wdXNoKDM0NSk7CiAgICBsbC5wdXNoKDg5KTsKICAgIGxsLnB1c2goNzcpOwogICAgbGwucHVzaCg2NSk7CiAgICBjb3V0IDw8ICJHaXZlbiBsaW5rZWQgbGlzdFxuIjsKICAgIGxsLnByaW50KCk7CiAgICBsbC5yZXZlcnNlKCk7CiAgICBjb3V0IDw8ICJcblJldmVyc2VkIGxpbmtlZCBsaXN0IFxuIjsKICAgIGxsLnByaW50KCk7CiAgICByZXR1cm4gMDsKfQovLyBtYW0gaWFtIGp1c3QgdHJpZWQgdGhlc2UgcHJvZ3JhbXMgYXMgcGVyIHRoZSB3M3NjaG9vbHMgaWYgaSByZXZpc2VkIHRoZSBwcmV2aW9vdXMgdG9waWNzIGkgY2FuIG1ha2UgaXQgaW4gZWZlY3RpdmUgd2F5IHBsZWFzZSBwcm92aWRlIHRoZSByZWNvcmRpbmcgb2Ygd2VlayAyLTIgc2Vzc2lvbiBtYW0K