fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. struct Node{
  5. int val;
  6. Node* next;
  7.  
  8. Node(int val):val(val),next(nullptr){};
  9. };
  10.  
  11. Node* reverse(Node* head){
  12. if(head == nullptr){
  13. return nullptr;
  14. };
  15.  
  16. Node* temp = head;
  17. Node* prev = NULL;
  18.  
  19. while(temp!=nullptr){
  20. Node* front = temp->next;
  21. temp->next = prev;
  22. prev = temp;
  23. temp = front;
  24. }
  25. return prev;
  26. }
  27. Node* LL(vector<int>&a){
  28. Node* head = new Node(a[0]);
  29. Node* curr = head;
  30.  
  31. for(int i = 1 ; i < a.size();i++){
  32. curr->next = new Node(a[i]);
  33. curr = curr->next;
  34. }
  35. return head;
  36. }
  37.  
  38. void print(Node* head){
  39. Node* temp = head;
  40.  
  41. while(temp != nullptr){
  42. cout<<temp->val<<endl;
  43. temp = temp->next;
  44. }
  45. }
  46. int main() {
  47. int n ; cin>>n;
  48. vector<int>a(n);
  49.  
  50. for(int i = 0;i<n ;i++){
  51. cin>>a[i];
  52. }
  53.  
  54. Node* head = LL(a);
  55. Node* ans = reverse(head);
  56.  
  57. print(ans);
  58. return 0;
  59. }
Success #stdin #stdout 0.01s 5312KB
stdin
4
1 2 3 4
stdout
4
3
2
1