Leetcode Merge Two Sorted Lists

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;
}

 

posted @ 2014-06-22 22:25  OpenSoucre  阅读(126)  评论(0编辑  收藏  举报