fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Node {
  5. public:
  6. int data;
  7. Node *next;
  8. Node(int data) {
  9. this->data = data;
  10. this->next = NULL;
  11. }
  12. };
  13. class LL {
  14. private:
  15. Node *head;
  16. public:
  17.  
  18. LL() : head(NULL) {
  19. createLL();
  20. }
  21.  
  22. void printLL(Node *head) {
  23. if(head == NULL)
  24. head = this->head;
  25. Node *temp = head;
  26. while (temp != NULL) {
  27. cout << temp->data << "-->";
  28. temp = temp->next;
  29. }
  30. cout << "NULL" << endl;
  31. }
  32.  
  33. void createLL() {
  34. head = new Node(2);
  35. head->next = new Node(7);
  36. head->next->next = new Node(8);
  37. head->next->next->next = new Node(1);
  38. head->next->next->next->next = new Node(4);
  39. head->next->next->next->next->next = new Node(9);
  40. }
  41.  
  42. friend void mergeAlternate(LL LL1, LL LL2);
  43.  
  44. ~LL() {
  45. Node *temp = NULL;
  46. while (head != NULL) {
  47. temp = head;
  48. head = head->next;
  49. delete temp;
  50. }
  51. }
  52. };
  53.  
  54. void mergeAlternate(LL LL1, LL LL2) {
  55. Node *head1 = LL1.head, *head2 = LL2.head;
  56. Node *temp1, *temp2;
  57. while ((head1 != NULL) && (head2 != NULL)) {
  58. temp1 = head1->next;
  59. temp2 = head2->next;
  60. head1->next = head2;
  61. head2->next = temp1;
  62. if (temp1 == NULL)
  63. break;
  64. head1 = temp1;
  65. head2 = temp2;
  66. }
  67. if (head2 != NULL) {
  68. head1->next = head2;
  69. }
  70. LL2.head = NULL;
  71. LL1.printLL(LL1.head);
  72. }
  73.  
  74. int main() {
  75. LL newLL, newLL2;
  76. newLL2.printLL(NULL);
  77. mergeAlternate(newLL, newLL2);
  78. newLL2.printLL(NULL);
  79. }
  80.  
Success #stdin #stdout 0s 3276KB
stdin
Standard input is empty
stdout
2-->7-->8-->1-->4-->9-->NULL
2-->2-->7-->7-->8-->8-->1-->1-->4-->4-->9-->9-->NULL
155672576-->155672672-->155672592-->155672688-->155672608-->155672704-->155672624-->155672720-->155672640-->155672736-->155672656-->NULL