首页 > 代码库 > [LeetCode] Merge Two Sorted Lists

[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.

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {        ListNode *head = NULL,*p=NULL,*temp;        if(l1 != NULL || l2 !=NULL){            if(l1 != NULL && l2 !=NULL){               if(l1->val < l2->val){                   head = l1;                   l1= l1->next;               }               else{                   head = l2;                   l2 = l2->next;               }            }            else if(l1 != NULL){                head = l1;                l1= l1->next;            }            else{                head = l2;                l2 = l2->next;            }        }//end if                    p = head;        while(l1 != NULL && l2 != NULL){            if(l1->val<l2->val){                temp = l1;                l1 = l1->next;            }            else{                temp = l2;                l2 = l2->next;            }            p->next = temp;            p = p->next;        }//end while                while(l1 != NULL){            p->next = l1;            l1 = l1->next;            p = p->next;        }//end while                while(l2 != NULL){            p->next = l2;            l2 = l2->next;            p = p->next;        }//end while         if(p)            p->next = NULL;          return head;                         }};