合并两个排序的链表
描述
输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。
数据范围:\(0 \le n\le 1000\), \(-1000 \le 节点值\le 1000\),要求:空间负责度\(o(1)\),时间复杂度\(o(n)\).
实例1:
输入:\({1,2,3}\), \({2,4,6}\),合并后的链表为\({1,2,3,4,5,6}\)
实例2:
输入:\({-1,2,4}, {1,3,4}\),合并后的链表为\(-1,1,2,3,4,4\)
代码:
class Solution:
def Merge(self , pHead1: ListNode, pHead2: ListNode) -> ListNode:
# write code here
temp = ListNode(0) # 构建新的链表
curr = temp
while pHead1 and pHead2:
if pHead1.val <= pHead2.val:
curr.next = pHead1
pHead1 = pHead1.next
else:
curr.next = pHead2
pHead2 = pHead2.next
curr = curr.next
if pHead1:
curr.next = pHead1
if pHead2:
curr.next = pHead2
return temp.next

浙公网安备 33010602011771号