diff --git a/Linked Lists/MergeTwoSortedLinkedList.cpp b/Linked Lists/MergeTwoSortedLinkedList.cpp new file mode 100644 index 0000000..17e87a2 --- /dev/null +++ b/Linked Lists/MergeTwoSortedLinkedList.cpp @@ -0,0 +1,83 @@ +#include +using namespace std; + +class node{ + public: + int data; + node* next; +}; + +node* a=NULL; +node* b=NULL; +node* res=NULL; + +node* sortedMerge(struct node*a, struct node* b ){ + + node* result=NULL; + + //base case + if(a==NULL){ + return b; + } + else if(b==NULL){ + return a; + } + + //decide the smaller data and recur + if(a->data<=b->data){ + result=a; + result->next=sortedMerge(a->next,b); + } + else{ + result=b; + result->next=sortedMerge(a,b->next); + } + return result; +} + +void display(node *result){ //to print the resultant linked list + node* temp=result; + while(temp!=NULL){ + cout<data<<" "; + temp=temp->next; + } + cout<data = data; + newnode->next = (*head); + (*head) = newnode; +} + +int main(){ + push(&a, 5); + push(&a, 3); + push(&a, 1); + + + cout<<"First linked list: "; + display(a); + + push(&b, 6); + push(&b, 4); + push(&b, 2); + cout<<"Second linked list: "; + display(b); + + res=sortedMerge(a,b); + + cout<<"Sorted Merge linked list: "; + display(res); + return 0; +} + + +INPUT: +First linked list: 1 3 5 +Second linked list: 2 4 6 + +OUTPUT: +Sorted Merge linked list: 1 2 3 4 5 6