构建一个新链表,遍历这两个有序链表,将较小值加入到新链表。直到两个有序链表至少有一个遍历结束为止。
对于没有遍历完的有序链表,将其剩余的元素加入到新链表的后面、
# 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:
l_new = ListNode(None)
ll_new = l_new
if l1 == None and l2 == None:
return
while (l1 != None) and (l2 != None):
if l1.val <= l2.val:
l_new.val = l1.val
l1 = l1.next
l_new.next = ListNode(None)
l_new = l_new.next
else:
l_new.val = l2.val
l2 = l2.next
l_new.next = ListNode(None)
l_new = l_new.next
while l1 != None:
l_new.val = l1.val
l1 = l1.next
l_new.next = ListNode(None)
l_new = l_new.next
while l2 != None:
l_new.val = l2.val
l2 = l2.next
l_new.next = ListNode(None)
l_new = l_new.next
l2_new = ll_new
while ll_new.next.val != None:
ll_new = ll_new.next
ll_new.next = None
return l2_new