21. Merge Two Sorted Lists
Easy
Merge two sorted linked lists and return it as a new sorted list. The new list should be made by splicing together the nodes of the first two lists.
Example 1:
Input: l1 = [1,2,4], l2 = [1,3,4] Output: [1,1,2,3,4,4]
Example 2:
Input: l1 = [], l2 = [] Output: []
Example 3:
Input: l1 = [], l2 = [0] Output: [0]
Constraints:
- The number of nodes in both lists is in the range
[0, 50]
. -100 <= Node.val <= 100
- Both
l1
andl2
are sorted in non-decreasing order.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* H = new ListNode(0); ListNode* p = H; ListNode* p1 = l1; ListNode* p2 = l2; while(p1&&p2){ if(p1->val<=p2->val){ p->next = p1; p1 = p1->next; }else{ p->next = p2; p2 = p2->next; } p = p->next; } p->next = p1?p1:p2; return H->next; } }; |
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 | /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode head = new ListNode(); ListNode p = head; while(l1!=null && l2!=null){ if(l1.val<=l2.val){ p.next = l1; p = l1; l1 = l1.next; }else{ p.next = l2; p = l2; l2 = l2.next; } } if(l1!=null){ p.next = l1; } if(l2!=null){ p.next = l2; } return head.next; } } |
No comments:
Post a Comment