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 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
class Solution { public: ListNode* (ListNode* l1, ListNode* l2) { if (l1 == NULL && l2 == NULL) return NULL; else if (l1 == NULL && l2 != NULL) return l2; else if (l1 != NULL && l2 == NULL) return l1; ListNode *root = NULL; ListNode *pl1 = l1; ListNode *pl2 = l2;
ListNode **p = &root; while (pl1 != NULL && pl2 != NULL) { if (pl1->val < pl2->val) { (*p) = pl1; pl1 = pl1->next; } else { (*p) = pl2; pl2 = pl2->next; } p = &((*p)->next); } if (pl1 != NULL) (*p) = pl1; if (pl2 != NULL) (*p) = pl2;
return root; } };
|
近期评论