首页 > 代码库 > 21. Merge Two Sorted Lists

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

 

 1 /** 2  * Definition for singly-linked list. 3  * struct ListNode { 4  *     int val; 5  *     ListNode *next; 6  *     ListNode(int x) : val(x), next(NULL) {} 7  * }; 8  */ 9 class Solution {10 public:11     ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {12         ListNode* newHead = new ListNode(-1);13         ListNode* tail = newHead;14         15         while(l1 != NULL && l2 != NULL)16         {17             if(l1->val <= l2->val){18                 tail->next = l1;19                 l1 = l1->next;20             }21             else{22                 tail->next = l2;23                 l2 = l2->next;24             }25             tail =tail->next;26         }27         if(l1 != NULL){28             tail->next = l1;29         }else if(l2 != NULL){30             tail->next = l2;31         }32         return newHead->next;33     }34 };

 

21. Merge Two Sorted Lists