-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsgLLreverse.cpp
More file actions
75 lines (69 loc) · 1.07 KB
/
sgLLreverse.cpp
File metadata and controls
75 lines (69 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream>
#define null 0
using namespace std;
struct node
{
int data;
node *next;
};
node *first,*temp,*ttemp,*p,*q,*r,*ptemp,*pttemp,
*ntemp,*nttemp;
void init()
{
first=temp=ttemp=null;
}
void addnode(int val)
{
temp=first;
while(temp->next!=null)
{
temp=temp->next;
}
ttemp=new node;
ttemp->data=val;
ttemp->next=null;
temp->next=ttemp;
}
void createfirst(int val)
{
first=new node;
first->data=val;
first->next=null;
}
void disp()
{
temp=first;
while(temp!=null)
{
cout<<temp->data<<endl;
temp=temp->next;
}
}
void reverse()
{
ttemp=null;
while (first != null)
{
temp = first; // Current node
first = first->next; // Move head forward
temp->next = ttemp; // Reverse pointer
ttemp = temp; // Move prev forward
}
first = ttemp; // Update head to new first
}
int main()
{
init();
createfirst(10);
addnode(20);
addnode(30);
addnode(50);
addnode(60);
disp();
cout<<"\n";
reverse();
disp();
}