Converter função recursiva para função iterativa

/*

struct Node
{
int data;
struct Node *next;
}
/
Node
MergeLists(Node headA, Node headB)
{
// This is a “method-only” submission.
// You only need to complete this method

if(headA==NULL && headB==NULL ) return NULL;
if(headA==NULL) return headB;
if(headB==NULL) return headA;

if(headA->data < headB->data)
{
headA->next=MergeLists(headA->next,headB);
return headA;
}
else
{
headB->next=MergeLists(headA,headB->next);
return headB;
}
}

Função de mesclagem de duas listas simples encadeadas em C. Gostaria de trocar a recursividade para iterativo. Alguém poderia me ajudar?