Leetcode Merge Two Sorted Lists

OpenSoucre發表於2014-06-22

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

簡單的連結串列合併題

ListNode *mergeTwoLists(ListNode *l1,ListNode *l2){
    if(l1 == NULL) return l2;
    if(l2 == NULL) return l1;
    ListNode *head = NULL;
    if(l1->val <= l2->val) {head = l1;l1=l1->next;}
    else {head = l2; l2 = l2->next;}
    head->next  = NULL;
    ListNode *p  = head;
    while(l1 && l2){
        if(l1->val <= l2->val){
            ListNode *node = l1->next;
            l1->next = p->next;
            p->next = l1;
            p = l1;
            l1 = node;
        }else{
            ListNode *node = l2->next;
            l2->next = p->next;
            p->next = l2;
            p = l2;
            l2 = node;    
        }
    }
    if(l1) p->next = l1;
    if(l2) p->next = l2;
    return head;
}

 

相關文章