fork download
  1. #include<stdio.h>
  2. struct node
  3. {
  4. int info;
  5. struct node* next;
  6. };
  7.  
  8. node* newNode(int data)
  9. {
  10. struct node* temp = new node;
  11. temp->info = data;
  12. temp->next=NULL;
  13. return (temp);
  14. }
  15.  
  16. void print(node* head)
  17. {
  18. node* ptr=head;
  19. while(ptr!=NULL)
  20. {
  21. printf("%d->",ptr->info);
  22. ptr=ptr->next;
  23. }
  24. printf("NULL");
  25. }
  26.  
  27. void reverse(node* start,int k)
  28. {
  29. int arr[k];
  30. int i_start=0;
  31. node* ptr=start;
  32.  
  33. for(int m=0;m<k;m++)
  34. {
  35. if(ptr==NULL)
  36. break;
  37.  
  38. arr[k-1-m]=ptr->info;
  39. i_start=k-1-m;
  40. ptr=ptr->next;
  41. }
  42.  
  43. ptr=start;
  44.  
  45. for(int m=i_start;m<k;m++)
  46. {
  47. if(ptr==NULL)
  48. return;
  49.  
  50. ptr->info=arr[m];
  51. ptr=ptr->next;
  52. }
  53.  
  54. reverse(ptr,k);
  55. }
  56.  
  57.  
  58. int main()
  59. {
  60. int k=2;
  61.  
  62. node* head=newNode(0);
  63. head->next=newNode(1);
  64. head->next->next=newNode(2);
  65. head->next->next->next=newNode(3);
  66. head->next->next->next->next=newNode(4);
  67. head->next->next->next->next->next=newNode(5);
  68. head->next->next->next->next->next->next=newNode(6);
  69. head->next->next->next->next->next->next->next=newNode(7);
  70. head->next->next->next->next->next->next->next->next=newNode(8);
  71. head->next->next->next->next->next->next->next->next->next=newNode(9);
  72. head->next->next->next->next->next->next->next->next->next->next=newNode(10);
  73.  
  74. reverse(head,k);
  75. print(head);
  76. return 0;
  77. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
1->0->3->2->5->4->7->6->9->8->10->NULL