-
Notifications
You must be signed in to change notification settings - Fork 0
/
mergeLL.cpp
77 lines (63 loc) · 1.23 KB
/
mergeLL.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <bits/stdc++.h>
using namespace std;
class Node{
public:
int data;
Node* next;
Node(int x){
data=x;
next=NULL;
}
};
Node* insert(Node* &head,int x){
Node* nn=new Node(x);
if(head==NULL){
head=nn;
return nn;
}
Node* temp=head;
while(temp->next!=NULL){
temp=temp->next;
}
temp->next=nn;
return nn;
}
void print(Node* head){
Node* temp=head;
while(temp!=NULL){
cout<<temp->data<<" ";
temp=temp->next;
}
cout<<"\n";
}
Node* merge(Node* &head1,Node* &head2){
if(head1==NULL){
return head2;
}
if(head2==NULL){
return head1;
}
Node* k;
if(head1->data<=head2->data){
k=head1;
head1->next=merge(head1->next,head2);
}
else{
k=head2;
head2->next=merge(head1,head2->next);
}
return k;
}
int main(){
Node* head1=NULL;
head1=insert(head1,1);
insert(head1,3);
Node* head2=NULL;
head2=insert(head2,2);
insert(head2,4);
print(head1);
print(head2);
Node* head3=merge(head1,head2);
print(head3);
return 0;
}