0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LeetCode初级算法-链表02:合并两个有序链表

电子设计 来源:电子设计 作者:电子设计 2020-12-10 22:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

LeetCode初级算法--链表02:合并两个有序链表

一、引子

这是由LeetCode官方推出的的经典面试题目清单~
这个模块对应的是探索的初级算法~旨在帮助入门算法。我们第一遍刷的是leetcode推荐的题目。

二、题目

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

1、思路

首先我们看到的数一个有序的链表,所以我们可以先比较两个链表长度相等的部分,按照顺序进行排列,对于剩下一个链表的部分,直接插入到最终的链表中,详细过程见代码。

2、编程实现

python

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def mergeTwoLists(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        new_head = ListNode(0)
        #返回的是合并后的列表 所以让一个节点等于这个空的节点
        pHead = new_head
        #进行排序
        while l1 and l2:
            if l1.val > l2.val:
                new_head.next = l2
                l2 = l2.next
            else:
                new_head.next = l1
                l1 = l1.next
            new_head = new_head.next
        # 遍历剩下没遍历的列表
        if l1:
            new_head.next = l1
        elif l2:
            new_head.next = l2
        return pHead.next

分享技术,乐享生活:我们的公众号计算机视觉这件小事每周推送“AI”系列资讯类文章,欢迎您的关注!

本文由博客一文多发平台 OpenWrite 发布!

审核编辑 黄昊宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1821

    文章

    50576

    浏览量

    268084
  • 机器学习
    +关注

    关注

    67

    文章

    8571

    浏览量

    137497
  • 深度学习
    +关注

    关注

    73

    文章

    5614

    浏览量

    124842
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式春招笔试高频算法题(附解题思路)

    :通过相邻元素两两比较,将较大的元素逐步“冒泡”到数组末尾,重复多次,直到整个数组有序。 步骤拆解(贴合嵌入式C语言实现): 外层循环:控制排序轮次,共需n-1轮(n为数组长度),每轮排出一最大
    发表于 03-18 10:08

    图像上两个多边形的ROI区域,如何获得这两个ROI区域重合部分的ROI

    labview中,图像上两个多边形的ROI区域,如何获得这两个ROI区域重合部分的ROI
    发表于 03-16 14:03

    两个RS485-Modbus主站如何通讯

    本产品能很好解决Master-1主站向模块写入数据,Master-2主站读取数据;Master-2主站向模块写入数据,Master-1主站读取数据。由此解决两个主站之间的互相读通信难题。
    发表于 02-08 15:32 1次下载

    页面导入导出功能怎么用?如何快速合并两个工程,复制粘贴注意事项?

    页面导入导出功能怎么用?如何快速合并两个工程,复制粘贴注意事项?
    发表于 02-03 14:16

    单片机常用的14C语言算法分享

    两个有序数组A、B合并成另一有序的数组C,升序) 基本思想: 1)先在A、B数组中各取第一
    发表于 01-29 06:59

    页面导入导出功能怎么用?如何快速合并两个工程,复制粘贴注意事项?

    页面导入导出功能怎么用?如何快速合并两个工程,复制粘贴注意事项?
    发表于 01-28 15:17

    指针难学的4点原因分析

    )); *p = 1; return 0; } 程序定义了一指针变量p,前面有*号;后面给指针p指向的内存区域赋值1,又有*号,这两个*号有啥区别呢?很多初学者在这里
    发表于 01-16 06:12

    曙光存储连续斩获两个行业奖项

    近期,曙光存储连续斩获两个行业奖项,自研技术产品在国产突破、AI行业应用等方面的成果获得广泛关注。
    的头像 发表于 01-15 16:28 2802次阅读

    无数据域双向链表的代码

    下面是一简单的示例,演示了如何使用无数据域双向链表进行插入和访问操作: #include #include// 包含offsetof宏 // 定义节点结构体 struct Node
    发表于 12-11 06:56

    rt_object_get_information获取到的链表为空怎么解决?

    rtt启动过程,在初始化堆的时候,进入rt_object_init,调用rt_object_get_information获取到的链表为空,导致系统起不来。
    发表于 10-11 11:44

    硬件SPI两个CS操作两个norflash,怎么互斥操作两个norflash?

    硬件SPI两个CS操作两个norflash,怎么互斥操作两个norflash,有一norflash被模拟成U盘,会在中断中操作spi。
    发表于 09-26 06:18

    请问有办法在嵌入式单片机上实现对片外Flash的数据增删功能吗?

    时间要求, 工作时断电如何处理. 本来想试试sqlite, 但是看介绍需要几百K内存, 好像不是给单片机用的, 问了AI也是给我推的FlashDB, 它的KV值是支持删除的, 但是我需要有序索引, 像一链表, 现在有没有现成的
    发表于 09-23 06:10

    基本半导体连获两个行业奖项

    近日,基本半导体凭借在碳化硅模块领域的突出表现,连获“国产SiC模块TOP企业奖”和“年度优秀功率器件产品奖”两个行业奖项。
    的头像 发表于 09-05 16:31 1305次阅读

    图中两个按键开关是两个干簧管,为什么不直接对GND设计来检测这个干簧管通断呢?

    图中两个按键开关是两个干簧管,为什么不直接对GND设计来检测这个干簧管通断呢? 这样设计的原理是什么?
    发表于 06-17 06:30

    看到STM8L152用两个IO用两个或非门检测两个通断,是什么原理呢?

    图中两个按键开关是两个干簧管,为什么不直接对GND设计来检测这个干簧管通断呢? 这样设计的原理是什么?
    发表于 06-12 06:25