https://leetcode.com/problems/merge-two-sorted-lists/

1. Use Linked List:

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