• + 0 comments

    much simplified. same concept but it is easier to just chain with the first parameter and recursively place the smallest head list in that first parameter

    Node* MergeLists(Node *headA, Node* headB)
    {
         if(!headA&&!headB)
            return NULL;
        if(headA&&!headB)
            return headA;
        if(headB&&!headA)
            return headB;
        
        if(headA->data <= headB->data){
            headA->next = MergeLists(headA->next, headB);
            return headA;
        } else{
            MergeLists(headB,headA);
            return headB;
        }
    }