1

合并两个排序的链表

描述
输入两个递增的链表,单个链表的长度为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
posted @ 2024-03-19 16:34  Bonne_chance  阅读(18)  评论(0)    收藏  举报
1