示例1:
输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4
# 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
"""
# 关键条件递增
# 通过指针对比反复对比链接
dummy_head = ListNode(0)
cur = dummy_head
cur1, cur2 = l1, l2
while cur1 and cur2:
if cur1.val >= cur2.val:
cur.next = cur2
cur2 = cur2.next
else:
cur.next = cur1
cur1 = cur1.next
cur = cur.next # 前面操作只是找到cur的next,还需要cur进行移动
cur.next = cur1 if cur1 else cur2 #连接剩下的链表
return dummy_head.next