Simple C++ iterative solution in O(n) time


#1
ListNode* Solution::mergeTwoLists(ListNode* A, ListNode* B) {
    ListNode* res=new ListNode(-1);
    auto sol=res;
    while(A or B){
        if(A and B){
            if(A->val<B->val){
                res->next=A;
                A=A->next;
            }
            else{
                res->next=B;
                B=B->next;
            }
        }
        else if(B==NULL){
            res->next=A;
            A=A->next;
        }
        else if(A==NULL){
            res->next=B;
            B=B->next;
        }
        res=res->next;
    }
    
    return sol->next;
}