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

合并两个排序的链表

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:
    def Merge(self , pHead1: ListNode, pHead2: ListNode) -> ListNode:
        # write code here
        if not pHead1:#==None:#链表1为空链表,直接返回链表2
            return pHead2
        if not pHead2:#==None:#链表2为空链表,直接返回链表1
            return pHead1
        
        head = ListNode(0)#哨兵节点
        cur = head#新链表当前(最后)节点
        while pHead1 and pHead2:#链表1和链表2都还有节点,新链表选取最小节点进行连接
            if pHead1.val<=pHead2.val:
                cur.next, pHead1 = pHead1, pHead1.next
            else:
                cur.next, pHead2 = pHead2, pHead2.next
            cur = cur.next
        
        if pHead1:#链表1还有节点(链表2没),直接把剩余节点续接到新链表后
            cur.next = pHead1
        else:#链表1没有节点,直接把链表2剩余节点续接到新链表后
            cur.next = pHead2
        
        return head.next#返回合并后的新链表







全部评论

相关推荐

10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
牛客60022193...:大厂都招前端,他们觉得AI能替代前端,可能他们公司吊打btaj吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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