题解 | #合并两个排序的链表#

合并两个排序的链表

https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param pHead1 ListNode类 
# @param pHead2 ListNode类 
# @return ListNode类
#
class Solution:
    """方法1: 迭代求解
    1.判空,一个空,则返回另一个
    2.新建空表头链接后面两个链表排序后的节点,两个指针分别指向链表头
    3.遍历两个链表都不为空,去最小值添加到新的链表后面,每次只能吧被添加的链表的指针后移
    4.遍历到最后肯定有一个链表还有剩余节点,直接链接在后面即可
    """
    def Merge(self , pHead1: ListNode, pHead2: ListNode) -> ListNode:
        # write code here
        if pHead1 == None:
            return pHead2
        if pHead2 == None:
            return pHead1      # 
            # 加一个表头
        res = ListNode(0)
        cur = res
        # 两个链表均不为空
        while pHead1 and pHead2:
            # 去较小值
            if pHead1.val <= pHead2.val:
                cur.next = pHead1
                # 之移动取值的指针
                pHead1 = pHead1.next
            else:
                cur.next = pHead2
                pHead2 = pHead2.next
            cur = cur.next

        # 剩余链表
        if pHead1:
            cur.next = pHead1
        else:
            cur.next = pHead2
        # 去表头
        return res.next

***--一脸懵逼

全部评论

相关推荐

2025-12-15 12:50
河北工程大学
sta666:我也是这个国际商业化的,三天,一天一面,就通过了,不过我是后端实习生,好好面感觉能过。
点赞 评论 收藏
分享
2025-12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务