有序,依次判断结点val大小即可
判断完大小后将结点加入新链表,最后返回新链表的头结点即可
def Merge(self , pHead1: ListNode, pHead2: ListNode) -> ListNode:
if pHead1 == None:
return pHead2
if pHead2 == None:
return pHead1
head = ListNode(0) # 新表的头结点
cur = head
while pHead1 != None and pHead2 != None:
if pHead1.val <= pHead2.val:
cur.next = pHead1
pHead1 = pHead1.next
else:
cur.next = pHead2
pHead2 = pHead2.next
cur = cur.next
if pHead1 == None: # 将剩余的结点添加进新链表
cur.next = pHead2
else:
cur.next = pHead1
return head.next
最开始我的代码中并没有2~5行的判断,不过后来看评论区及题解的时候思考了一下,还是加上了
因为不加判断,如果给定空链表,则会多一步创建空结点,造成浪费