力扣题目学习笔记(OC + Swift)21. 合并两个有序链表

21. 合并两个有序链表

链表解题经典三把斧:

  • 哑巴节点
  • 快慢指针

此题比较容易想到的解法是迭代法,生成哑巴节点,然后迭代生成后续节点。

方法一、迭代法

Swift

func mergeTwoLists(_ list1: ListNode?, _ list2: ListNode?) -> ListNode? {guard list1 != nil else {return list2}guard list2 != nil else {return list1}var list1 = list1var list2 = list2let dummyNode = ListNode(-1);var prev:ListNode? = dummyNodewhile list1 != nil && list2 != nil {if list1!.val < list2!.val {prev?.next = list1list1 = list1!.next}else {prev?.next = list2list2 = list2!.next}prev = prev?.next}prev?.next = (list1 != nil) ? list1 : list2return dummyNode.next}

OC

//todo

方法二、递归法

代码简洁、思路清晰、稍占内存的解法。

Swift

func mergeTwoLists(_ list1: ListNode?, _ list2: ListNode?) -> ListNode? {guard let list1 = list1 else { return list2 }guard let list2 = list2 else { return list1 }if list1.val < list2.val {list1.next = mergeTwoLists(list1.next, list2)return list1}else {list2.next = mergeTwoLists(list1, list2.next)return list2}}

OC

//todo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git查询当前目录下的文件列表_linux下查找文件,看这篇就够了

linux下文件查找命令用法总结。前言我们经常需要在linux系统中查找一个文件&#xff0c;或需要知道哪些文件包含已知的特有信息&#xff0c;便于快速对比排查、分析问题&#xff0c;那么如何准确高效查找呢&#xff1f;其实在linux下可查找文件的命令不止一个&#xff0c;命令附…

hive xmlserde_hive多分隔符

hive在建表时&#xff0c;通常使用ROW FORMAT DELIMITEDFIELDS TERMINATED BY "|#" 来限定数据中各个字段的分隔符&#xff0c;这种方式只支持单个分隔符&#xff0c;即&#xff1a;实际只会按照"|"进行分割&#xff0c;若想实现支持多分隔符&#xff0c;有…

Algorithm-Gossip(4) 三色棋(Three_Color_Flag)

前言 This Series aritcles are all based on the book 《经典算法大全》; 对于该书的所有案例进行一个探究和拓展&#xff0c;并且用python和C进行实现; 目的是熟悉常用算法过程中的技巧和逻辑拓展。 提出问题 Algorithm Gossip: 三色棋&#xff08;Three_Color_Flag&#xff…

人工智能如何推动神经科技发展?

来源 | Forbes作者 | Margaretta Colangelo编译 | 科技行者神经科技以人类神经系统原理为基础&#xff0c;旨在研究人类大脑这一极为复杂的模型架构。在实际作用方面&#xff0c;神经科技将帮助研究人员了解大脑功能与引发功能障碍的原因&#xff0c;并助力医生治疗各类神经系…

tomcat lifecyclelistener_继续,来聊聊Tomcat的容器

作者&#xff1a;不学无数的程序员链接&#xff1a;https://urlify.cn/jYZFFf在这篇文章《Tomcat是如何运行的&#xff1f;整体架构又是怎样的&#xff1f;》中我们简单介绍了容器的概念&#xff0c;并且说了在容器中所有子容器的父接口是Container。在死磕Tomcat系列(2)——En…

java 绘制长方形_Java入门:绘制简单图形

在上一节&#xff0c;我们学习了如何使用swing和awt工具创建一个空的窗口&#xff0c;本节学习如何绘制简单图形。基本绘图介绍Java中绘制基本图形&#xff0c;可以使用Java类库中的Graphics类&#xff0c;此类位于java.awt包中。在我们自己的java程序文件中&#xff0c;要使用…

web面试常见问题补充

jquery Ajax $ajax({ Url:”test.html”,-----发送请求的地址 Async:true;------异步操作 Cache:true,-----可以从缓冲中加载 Type:”GET”,------请求方法 Datatype:”json”,-------服务器返回数据类型 Sucess:function(data){ ----------调用成功语句 If(data”OK”){ Conso…

如何与病毒搏斗?这部BBC“史诗级大片”告诉你答案

来源&#xff1a;惠在湖北 我们知道&#xff0c;在目前没有特效药和疫苗的情况下&#xff0c;被治愈的新型冠状病毒肺炎患者&#xff0c;离不开医学的帮助&#xff0c;而治愈的关键&#xff0c;依靠的是人体自身的免疫力。病毒是如何入侵的&#xff1f;免疫力从何而来&#xff…

单系统 台电x80pro_台电X80 Pro (E6E9)-双系统安装文件平板固件

这是台电X80 Pro (E6E9)-双系统安装文件平板固件&#xff0c;台电X80 Pro (E6E9)出来已经有一段时间了 相信大家都体验到了新机的强大了吧可使用时难免会发生一些意外 比如账户锁密码忘记 手机中毒 使用卡顿 不开机或者开机定屏 无故黑屏等 那怎么解决呢 今天就带大家一起来了解…

Ranklib源码剖析--LambdaMart

Ranklib是一套优秀的Learning to Rank领域的开源实现&#xff0c;其中有实现了MART&#xff0c;RankNet&#xff0c;RankBoost&#xff0c;LambdaMart&#xff0c;Random Forest等模型。其中由微软发布的LambdaMART是IR业内常用的Learning to Rank模型&#xff0c;本文主要介绍…

gentoo linux 分区_小白安装Gentoo Linux操作系统——磁盘分区

磁盘分区规划在日常安装Gentoo Linux操作系统前需要对系统使用的磁盘分区进行规划&#xff0c;规划原则需考虑磁盘容量、系统规模与用途。现阶段个人PC的磁盘容量已近乎TB级别&#xff0c;磁盘容量已不再成为系统安装的约束&#xff0c;那么对系统规模与用途的考虑则是安装Gent…

markdown 行内公式_使用Markdown快速编辑公众号技巧之mdnice

请使用 Chrome 浏览器。请阅读下方文本熟悉工具使用方法&#xff0c;本文可直接拷贝到微信中预览。1 Markdown Nice 简介支持自定义样式的 Markdown 编辑器支持微信公众号、知乎和稀土掘金欢迎扫码回复「排版」加入用户群2 主题https://preview.mdnice.com/themes/欢迎提交主题…

AI人必看!89页全网最全清华知识图谱报告(附PDF)

来源&#xff1a;智东西知识图谱&#xff08;Knowledge Graph&#xff09;是人工智能的重要分支技术&#xff0c;它在2012年由谷歌提出&#xff0c;成为建立大规模知识的杀手锏应用&#xff0c;在搜索、自然语言处理、智能助手、电子商务等领域发挥着重要作用。知识图谱与大数据…

mui.init方法配置

mui框架将很多功能配置都集中在mui.init方法中&#xff0c;要使用某项功能&#xff0c;只需要在mui.init方法中完成对应参数配置即可&#xff0c;目前支持在mui.init方法中配置的功能包括&#xff1a; 创建子页面、 关闭页面、 手势事件配置、 预加载、 下拉刷新、上拉加载、 设…

python wx模块下choice列表框值怎么更新_wx python

一、静态文本控件wx.StaticText(parent, id, label, poswx.DefaultPosition, sizewx.DefaultSize, style0, name"staticText")wx.StaticText构造函数的参数parent&#xff1a;父窗口部件。id&#xff1a;标识符。使用-1可以自动创建一个唯一的标识。label&#xf…

AI战“疫”!人工智能在疫情中的重要作用

来源&#xff1a;腾讯新闻网新冠肺炎疫情牵动着全国人民的心&#xff01;在防控疫情部署落实工作中&#xff0c;上海着力将人工智能等现代信息技术深入应用于疫情态势研判、传播路径分析、精准防控、有效治疗及后续治理等各工作环节。通过提供更加精准有效的科学决策依据&#…

linux 判断指针是否可读_Linux进程间通信——消息队列

概念什么是消息队列&#xff1f;消息队列亦称报文队列&#xff0c;也叫做信箱。是Linux的一种通信机制&#xff0c;这种通信机制传递的数据具有某种结构&#xff0c;而不是简单的字节流。消息队列的本质其实是一个内核提供的链表&#xff0c;内核基于这个链表&#xff0c;实现了…

【人工智能】中科院2019全球人工智能发展白皮书!八大关键技术中国崛起中,国产AI芯片耀眼...

来源&#xff1a;产业智能官人工智能是一个很宽泛的概念&#xff0c;概括而言是对人的意识和思维过程的模拟&#xff0c;利用机器学习和数据分析方法赋予机器类人的能力。人工智能将提升社会劳动生产率&#xff0c;特别是在有效降低劳动成本、优化产品和服务、创造新市场和就业…

斜度符号标注_几何作图之斜度和锥度

虽然机件的形状各有不同&#xff0c;但它们的图样基本上都是由直线、圆弧和其它一些曲线所组成的几何形体。因此在绘图时&#xff0c;常常要运用一些几何作图方法。斜度和锥度1&#xff0e;斜度(GB/T 4458.4-2003)斜度是指一直线(或平面)对另一条直线(或平面)的倾斜程度&#x…

shiro 手动创建session_Shiro 和 spring boot 的集成

1 添加依赖使用 shiro-spring-boot-web-starter 在 spring boot 中集成 shiro 只需要再添加一个依赖<dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring-boot-web-starter</artifactId><version>1.4.1</version…