题目描述:(链接)
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 if (!l1) return l2; 13 if (!l2) return l1; 14 15 ListNode dummy(-1); 16 ListNode *p = &dummy; 17 while (l1 != nullptr && l2 != nullptr) { 18 if (l1->val < l2->val) { 19 p->next = l1; 20 l1 = l1->next; 21 } else { 22 p->next = l2; 23 l2 = l2->next; 24 } 25 p = p->next; 26 } 27 28 if (!l1) { 29 p->next = l2; 30 } else { 31 p->next = l1; 32 } 33 34 return dummy.next; 35 } 36 };