题目: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.
思路:链表合并。1判空,2.找到头节点head,r=head,3.当l1,l2都不为空时逐个判断并下移指针,4.判断l1和l2是否为空,并单独处理
# 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
"""
if l1==None and l2==None:return None
if l1!=None and l2==None:return l1
if l2!=None and l1==None:return l2
if l1.val<=l2.val:
head = ListNode(l1.val)
head = l1
l1=l1.next
else:
head = ListNode(l2.val)
head = l2
l2=l2.next
r = head
while l1!=None and l2!=None:
if l1.val<=l2.val:
r.next = l1
r = r.next
l1 = l1.next
else:
r.next=l2
r=r.next
l2 = l2.next
if l1!=None:
while l1!=None:
r.next = l1
r = r.next
l1 = l1.next
if l2!=None:
while l2!=None:
r.next = l2
r = r.next
l2 = l2.next
return head