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 发布!

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

    关注

    1789

    文章

    46636

    浏览量

    236985
  • 机器学习
    +关注

    关注

    66

    文章

    8347

    浏览量

    132294
  • 深度学习
    +关注

    关注

    73

    文章

    5463

    浏览量

    120876
收藏 人收藏

    评论

    相关推荐

    触发器的两个稳定状态分别是什么

    触发器作为数字电路中的基本逻辑单元,具有两个稳定状态,这两个状态通常用于表示二进制数码中的0和1。
    的头像 发表于 08-12 11:01 428次阅读

    ESP32-S3的LCD接口可以用DMA链表来触发发送数据吗?

    因为是用来驱动LED显示屏,用原来的I2S那样并行,通过链接自己组织数据列表,还是比较方便的,现在S3的I2S好像已经不能并行发数据了,只能用LCD的接口了,所以想知道LCD接口的DMA能不能用链表来组织数据。
    发表于 06-17 07:25

    两个铜片可以形成原电池吗

    两个铜片本身不能形成原电池,因为原电池的工作原理依赖于两个不同电位的电极材料之间的氧化还原反应。
    的头像 发表于 05-21 16:23 763次阅读

    Labview 如何将多列列表框相邻的两个单元格合并?如同Excel合并单元格

    如题,Labview中 如何将多列列表框相邻的两个单元格合并?如同Excel合并单元格。请各位大神帮忙指点,谢谢。
    发表于 04-25 11:12

    arcgis中如何关联两个属性表

    在ArcGIS中,关联两个属性表是一重要的操作,可以通过此操作将两个表中的数据关联起来,以便进行分析和查询。下面是详细介绍如何在ArcGIS中实现属性表的关联。 首先,我们需要明确两个
    的头像 发表于 02-25 11:01 3867次阅读

    数组和链表在内存中的区别 数组和链表的优缺点

    内存中的存储方式: 数组是一种连续存储的数据结构,它将元素存储在相邻的内存位置中。这使得数组的访问效率高,可以通过下标来直接访问任何一元素。 链表是一种离散存储的数据结构,它将元素存储在不同的内存块中,并使用指针
    的头像 发表于 02-21 11:30 858次阅读

    数组和链表有何区别

    数组和链表的区别,这个问题,不仅面试中经常遇到,考研的同学也得掌握才行。
    的头像 发表于 02-19 15:33 433次阅读
    数组和<b class='flag-5'>链表</b>有何区别

    两个电位器地控制一变频器,如何接线?

    两个电位器地控制一变频器,如何接线? 接线方式如下: 1. 首先,明确需要使用的电器设备。在这个场景中,我们需要两个电位器(即可变电阻器)和一
    的头像 发表于 02-05 10:13 4673次阅读

    如何给C语言中的函数定义两个不同的名字?

    最近有位哥问我,如何给C语言中的函数定义两个不同的名字?就是这两个名字都是指向同一函数,同一地址,而且两个名字都可以当做函数来用的那种。
    的头像 发表于 12-19 16:21 709次阅读

    电子设计中的两个不同概念:pcb与pcb封装

    电子设计中的两个不同概念:pcb与pcb封装
    的头像 发表于 12-11 15:49 767次阅读

    数据结构:删除有序链表的重复节点

    给定一有序链表(从小到大有序)的头结点head(该结点有值),删除链表中的重复元素,使链表
    的头像 发表于 12-05 15:46 803次阅读
    数据结构:删除<b class='flag-5'>有序</b><b class='flag-5'>链表</b>的重复节点

    redis的lru原理

    从缓存中进行淘汰。下面将详细介绍Redis的LRU原理。 概述 Redis使用一双向链表来维护缓存中的数据,链表的头部表示最近使用的数据,而链表的尾部表示最久未使用的数据。每当有新的
    的头像 发表于 12-05 09:56 589次阅读

    数据结构:判断链表回文结构

    给定一链表,判断该链表是否为回文结构。回文是指该字符串正序逆序完全一致。如当输入链表 {1,2,3,2,1} 时,断定是回文结构,输出True。
    的头像 发表于 12-01 13:26 584次阅读
    数据结构:判断<b class='flag-5'>链表</b>回文结构

    数据结构:单链表的排序

    给定一链表的头结点head(该结点有值),长度为n的无序单链表,对其按升序排序后,返回新链表。如当输入链表 {3,1,4,5,2} 时,
    的头像 发表于 11-30 13:56 1438次阅读
    数据结构:单<b class='flag-5'>链表</b>的排序

    两个硬盘2系统开机切换

    切换两个硬盘上的系统是一种常见的行为,可以让用户在不同的操作系统之间进行切换,以满足不同的需求。在本文中,我们将详细介绍如何配置和使用两个硬盘上的系统进行切换。本文将分为以下几个部分进行讨论:硬件
    的头像 发表于 11-28 15:08 7106次阅读