LeetCode初级算法--链表02:合并两个有序链表
一、引子
这是由LeetCode官方推出的的经典面试题目清单~
这个模块对应的是探索的初级算法~旨在帮助入门算法。我们第一遍刷的是leetcode推荐的题目。
二、题目
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
1、思路
首先我们看到的数一个有序的链表,所以我们可以先比较两个链表长度相等的部分,按照顺序进行排列,对于剩下一个链表的部分,直接插入到最终的链表中,详细过程见代码。
2、编程实现
# 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
发布评论请先 登录
相关推荐
ESP32-S3的LCD接口可以用DMA链表来触发发送数据吗?
因为是用来驱动LED显示屏,用原来的I2S那样并行,通过链接自己组织数据列表,还是比较方便的,现在S3的I2S好像已经不能并行发数据了,只能用LCD的接口了,所以想知道LCD接口的DMA能不能用链表来组织数据。
发表于 06-17 07:25
Labview 如何将多列列表框相邻的两个单元格合并?如同Excel合并单元格
如题,Labview中 如何将多列列表框相邻的两个单元格合并?如同Excel合并单元格。请各位大神帮忙指点,谢谢。
发表于 04-25 11:12
arcgis中如何关联两个属性表
在ArcGIS中,关联两个属性表是一个重要的操作,可以通过此操作将两个表中的数据关联起来,以便进行分析和查询。下面是详细介绍如何在ArcGIS中实现属性表的关联。 首先,我们需要明确两个
数组和链表在内存中的区别 数组和链表的优缺点
内存中的存储方式: 数组是一种连续存储的数据结构,它将元素存储在相邻的内存位置中。这使得数组的访问效率高,可以通过下标来直接访问任何一个元素。 链表是一种离散存储的数据结构,它将元素存储在不同的内存块中,并使用指针
两个电位器两地控制一个变频器,如何接线?
两个电位器两地控制一个变频器,如何接线? 接线方式如下: 1. 首先,明确需要使用的电器设备。在这个场景中,我们需要两个电位器(即可变电阻器)和一个
如何给C语言中的函数定义两个不同的名字?
最近有位哥问我,如何给C语言中的函数定义两个不同的名字?就是这两个名字都是指向同一个函数,同一个地址,而且两个名字都可以当做函数来用的那种。
redis的lru原理
从缓存中进行淘汰。下面将详细介绍Redis的LRU原理。 概述 Redis使用一个双向链表来维护缓存中的数据,链表的头部表示最近使用的数据,而链表的尾部表示最久未使用的数据。每当有新的
两个硬盘2个系统开机切换
切换两个硬盘上的系统是一种常见的行为,可以让用户在不同的操作系统之间进行切换,以满足不同的需求。在本文中,我们将详细介绍如何配置和使用两个硬盘上的系统进行切换。本文将分为以下几个部分进行讨论:硬件
评论