题目
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.
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.
Java
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode head = new ListNode(0);
ListNode p=head, p1=l1, p2=l2;
while(p1!=null&&p2!=null){
if(p1.val<p2.val){p.next=p1; p1=p1.next;}
else{p.next=p2; p2=p2.next;}
p=p.next;
}
if(p1!=null) p.next = p1;
else if(p2!=null) p.next=p2;
return head.next;
}
}
python
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def mergeTwoLists(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
head=ListNode(0); dup=head;
while l1!=None and l2!=None :
if l1.val < l2.val :
dup.next=l1
l1 = l1.next
dup = dup.next
else:
dup.next=l2
l2 = l2.next
dup = dup.next
if l2==None and l1!=None:
dup.next=l1
elif l1==None and l2!=None:
dup.next=l2
return head.next