ID | Title | Difficulty | |
---|---|---|---|
Loading... |
21. Merge Two Sorted Lists
Easy
LeetCode
Linked List, Recursion
Problem
You are given the heads of two sorted linked lists list1 and list2.
Merge the two lists in a one sorted list. The list should be made by splicing together the nodes of the first two lists.
Return the head of the merged linked list.
Example 1:
Input: list1 = [1,2,4], list2 = [1,3,4]
Output: [1,1,2,3,4,4]
Example 2:
Input: list1 = [], list2 = []
Output: []
Example 3:
Input: list1 = [], list2 = [0]
Output: [0]
Constraints:
- The number of nodes in both lists is in the range [0, 50].
- -100 <= Node.val <= 100
- Both list1 and list2 are sorted in non-decreasing order.
Code
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode dummy = new ListNode(-1);
ListNode curr = dummy;
while(l1 != null || l2 != null){
int x = l1 == null ? Integer.MAX_VALUE : l1.val;
int y = l2 == null ? Integer.MAX_VALUE : l2.val;
if(x < y){
curr.next = new ListNode(x);
l1 = l1.next;
} else {
curr.next = new ListNode(y);
l2 = l2.next;
}
curr = curr.next;
}
return dummy.next;
}
}
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode dummy = new ListNode(-1);
ListNode curr = dummy;
while(l1 != null && l2 != null){
if(l1.val < l2.val) {
curr.next = l1;
l1 = l1.next;
} else {
curr.next = l2;
l2 = l2.next;
}
curr = curr.next;
}
if(l1 != null) {
curr.next = l1;
}
if(l2 != null) {
curr.next = l2;
}
return dummy.next;
}
}
按 <- 键看上一题!
20. Valid Parentheses
按 -> 键看下一题!
22. Generate Parentheses