fork download
  1. #include<iostream>
  2. using namespace std;
  3. class node{
  4. public:
  5. node *next;
  6. int data;
  7. node(int d){
  8. next = NULL;
  9. data = d;
  10. }
  11. };
  12. void insertAtTail(node *&head, int data){
  13. if(head==NULL){
  14. head= new node(data);
  15. return;
  16. }
  17. node *temp = head;
  18. while(temp->next!=NULL){
  19. temp = temp->next;
  20. }
  21. temp->next = new node(data);
  22. return;
  23. }
  24.  
  25. void print(node *head){
  26. while(head !=NULL){
  27. cout<< head->data<<" ";
  28. head = head->next;
  29. }
  30. }
  31. node *merge(node *a, node *b){
  32. if(a==NULL)
  33. return b;
  34. else if(b==NULL){
  35. return a;
  36. }
  37. node *c;
  38. if(a->data < b->data){
  39. c=a;
  40. c->next = merge(a->next,b);
  41. }
  42. else{
  43. c=b;
  44. c->next = merge(a,b->next);
  45. }
  46. return c;
  47. }
  48.  
  49. int main(){
  50. node *head1 = NULL;
  51. node *head2 = NULL;
  52.  
  53. int t,n1,n2,x,y;
  54. cin>>t;
  55.  
  56. for(int i=0;i<t;i++){
  57. cin>>n1;
  58. for(int i=0;i<n1;i++){
  59. cin>>x;
  60. insertAtTail(head1,x);
  61. }
  62.  
  63. cin>>n2;
  64. for(int i=0;i<n1;i++){
  65. cin>>y;
  66. insertAtTail(head2,y);
  67. }
  68. node *ans = merge(head1,head2);
  69. print(ans);
  70. }
  71.  
  72. return 0;
  73. }
Success #stdin #stdout 0s 4320KB
stdin
Standard input is empty
stdout
Standard output is empty