合并两个排序的链表
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
限制:
0 <= 链表长度 <= 1000
解题思路:
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) {
ListNode p = new ListNode(0);
ListNode q = p;
while(l1!=null && l2!=null){
if(l1.val < l2.val){
q.next = l1;
l1 = l1.next;
}
else{
q.next = l2;
l2 = l2.next;
}
q = q.next;
}
if(l1==null){
q.next = l2;
}
if(l2==null){
q.next = l1;
}
return p.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
"""
p = ListNode(0)
q = p
while l1 and l2:
if l1.val < l2.val:
q.next = l1
l1 = l1.next;
else:
q.next = l2
l2 = l2.next
q = q.next
if not l1:
q.next = l2;
if not l2:
q.next = l1;
return p.next;