Advertisement
vaibhav1906

Reverse LL

Jun 28th, 2021
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. class Node{
  4. public:
  5. int val;
  6. Node * next;
  7. };
  8.  
  9. Node * insert(Node * head , int x){
  10. Node * a = new Node();
  11. a->val = x;
  12.  
  13. if(head==NULL){
  14. head = a;
  15. }
  16.  
  17. else{
  18. a->next = head;
  19. head = a;
  20. }
  21.  
  22.  
  23. return head;
  24. }
  25.  
  26. void printl(Node * head){
  27. Node * temp = head;
  28.  
  29. while(temp!=NULL){
  30. cout<<temp->val<<" ";
  31. temp = temp->next;
  32. }
  33.  
  34. cout<<endl;
  35.  
  36. }
  37.  
  38. Node * del (Node * head , int d){
  39. Node * temp = head;
  40.  
  41. if(head->val==d){
  42. Node* t = head;
  43.  
  44. head = head->next;
  45. free(t);
  46. return head;
  47. }
  48.  
  49. while(temp->next!=NULL && temp->next->val != d){
  50. temp = temp->next;
  51. }
  52.  
  53. if(temp->next==NULL)return head;
  54.  
  55. Node* y = temp->next;
  56.  
  57. temp->next = temp->next->next;
  58.  
  59. free(y);
  60.  
  61. return head;
  62.  
  63. }
  64.  
  65. Node * rev(Node* head){
  66. Node * curr = head;
  67. Node * prev = NULL;
  68. Node * next;
  69.  
  70. while(curr!=NULL){
  71. next = curr->next;
  72. curr->next = prev;
  73. prev = curr;
  74. curr = next;
  75. }
  76.  
  77. return prev;
  78.  
  79. }
  80.  
  81. int main(){
  82. int n;
  83. Node * head= NULL;
  84. cout<<"Enter the size of your linkedlist : \n";
  85. cin>>n;
  86.  
  87. for(int i=0; i<n; i++){
  88. cout<<"Enter a number : \n";
  89. int x; //3->2->1
  90. cin>>x;
  91. head = insert(head,x);
  92. }
  93.  
  94. printl(head);
  95.  
  96. head = rev(head);
  97.  
  98. cout<<"After reversing \n";
  99.  
  100. printl(head);
  101.  
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement