# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution(object):
def mergeTwoLists(self, list1, list2):
"""
:type list1: Optional[ListNode]
:type list2: Optional[ListNode]
:rtype: Optional[ListNode]
"""
# if list1==None:
# return list2
# if list2==None:
# return list1
# arr=[]
# while list1!=None:
# arr.append(list1)
# list1 = list1.next
# while list2!=None:
# arr.append(list2)
# list2 = list2.next
# arr.sort(key=lambda x:x.val)
# for index , node in enumerate(arr):
# if index < len(arr)-1:
# node.next = arr[index+1]
# else:
# node.next = None
# return arr[0]
if list1==None:
return list2
if list2==None:
return list1
p=prev = ListNode(-1)
while list1 and list2:
p.next =list1 if list1.val<list2.val else list2
p = p.next
if list1.val < list2.val:
list1 = p.next
else:
list2 = p.next
if list1==None:
p.next = list2
else:
p.next = list1
return prev.next
真麻烦啊,看起来简单,写起来废物