- Merge Two Sorted Lists
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.
Example:
Input: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4
python:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
res = []
while l1:
res.append(l1.val)
l1= l1.next
while l2:
res.append(l2.val)
l2= l2.next
res.sort()
if len(res) == 0:
return None
r = ListNode(res[0])
re = r
for i in range(1,len(res)):
re.next = ListNode(res[i])
re= re.next
return r
java:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1 == null){
return l2;
}
if(l2 == null)
{
return l1;
}
ListNode re = new ListNode(0);
ListNode r =re;
while(l1!=null && l2!=null){
if(l1.val <= l2.val){
r.next = new ListNode(l1.val);
r= r.next;
l1 = l1.next;
}
else{
r.next = new ListNode(l2.val);
r= r.next;
l2 = l2.next;
}
}
if(l1!=null){
r.next = l1;
}
if(l2!=null){
r.next = l2;
}
return re.next;
}
}