【算法萌新闯力扣】:合并两个有序链表

    力扣题目:合并两个有序链表

开篇

  今天是备战蓝桥杯的第24天及算法村开营第2天。根据算法村的讲义,来刷链表的相关题目。今天要分享的是合并两个有序链表。

题目链接: 21.合并两个有序链表

题目描述在这里插入图片描述

代码思路

  通过创建一个新链表,然后遍历两个链表,每次取两个链表指向的值中小的那个,放入新链表中,直到两个遍历完成。
 当然,要优化一下,当有一个链表遍历完成时,我们可以直接让新链表的表尾指向另外一个链表未遍历的部分。

代码纯享版

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode head = new ListNode(-1);ListNode node = head;while(list1 != null && list2 != null){if(list1.val > list2.val) {node.next = list2;list2 = list2.next;}else{node.next = list1;list1 = list1.next;}node = node.next;}if(list1 == null) node.next = list2;else node.next = list1;return head.next;}
}

代码逐行解析版

class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode head = new ListNode(-1); //创建一个头结点,赋值为-1,值是随便赋的。头结点主要是为了方便最后返回链表ListNode node = head; //创建结点node指向head,之后的操作都由node指向,head就一直处在链表的头while(list1 != null && list2 != null){ //循环条件是两个链表都不为空时if(list1.val > list2.val) {//如果表1的值大于表2node.next = list2; //把表2的值赋给node.next,注意不是node,赋给node的话,head就没意义了list2 = list2.next; //list2指向下一个结点}else{ //与上面同理,把list2换成list1node.next = list1; list1 = list1.next;}node = node.next; //node指向下一个结点}if(list1 == null) node.next = list2;//循环结束证明还有至多一个表不为空,让node.next指向不为空的表else node.next = list1;return head.next; //返回head.next,注意:head是-1,不是我们要返回的}
}

结语

 如果这道力扣题的分享对您有所帮助,点个关注,我会每天更新力扣题目的讲解,与大伙儿一同向前迈进!

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

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

相关文章

OpenGL 自学总结

前言: 本人是工作后才接触到的OpenGL,大学找工作的时候其实比较着急,就想着尽快有个着落。工作后才发现自己的兴趣点。同时也能感觉到自己当前的工作有一点温水煮青蛙的意思,很担心自己往后能力跟不上年龄的增长。因此想在工作之余…

小型内衣洗衣机什么牌子好?口碑最好的小型洗衣机

很多人会觉得内衣洗衣机是智商税,洗个内衣只需要两分钟的事情,需要花个几百块钱去入手一个洗衣机吗?然而清洗贴身衣物的并不是一件简单的事情,如果只是简单的搓洗,内裤上看不见的细菌也无法消除,而且对来生…

【第二节:微信小程序 app.json配置】微信小程序入门,以思维导图的方式展开2

以思维导图的方式呈现出来,是不是会更加直观一些呢 如果看不清楚,私信给单发 : 第二节:微信小程序 app.json配置: 包括: window pages tabBar networkTimeout debug 如下图所示: 2、ap…

CISA建议企业需要多重身份验证

多重身份验证(MFA)让您的企业更加安全,免受在线威胁的侵害。 中小型多因素身份验证提供额外的安全性 贵公司的知识产权、员工个人信息、客户信息等是犯罪活动的主要目标。仅使用密码并不总是能有效地保护组织的数据。事实上,弱密码或被盗密码是在线犯罪分…

CRM的智能招投标对企业有什么意义?

如今CRM系统的生态系统越来越壮大,这些工具的集成极大地丰富了CRM系统的应用场景,例如CRM系统集成企业微信等社交媒体为获客提供便利;再比如CRM集成ChatGPT提高邮件内容质量,对于经常接触招投标项目的业务人员来说,在C…

Spring框架体系及Spring IOC思想

目录 Spring简介Spring体系结构SpringIOC控制反转思想自定义对象容器Spring实现IOCSpring容器类型容器接口容器实现类对象的创建方式使用构造方法使用工厂类的方法使用工厂类的静态方法对象的创建策略对象的销毁时机生命周期方法获取Bean对象的方式通过id/name获取通过类型获取…

UE4/UE5 c++绘制编辑器场景直方图(源码包含场景中的像素获取、菜单添加ToolBar)

UE4/UE5 c场景直方图 UE4/UE5 C绘制编辑器场景直方图绘制原理:元素绘制坐标轴绘制 源码处理 UE4/UE5 C绘制编辑器场景直方图 注:源码包含场景中的像素获取、菜单添加ToolBar 实现效果: 这个是用于美术统计场景中像素元素分布,类…

相机内存卡照片删除怎么恢复?没有备份可这样操作

在使用相机时,不小心删除了重要的照片可能是每位摄影爱好者的噩梦。然而,通过一些恢复方法,我们有机会挽救被删除的照片。本文将详细介绍相机内存卡照片删除恢复的方法。 图片来源于网络,如有侵权请告知 如果您误删了相机内存卡中…

企业营销管理能够实现自动化吗?怎么做?

当今企业面临着越来越多的营销难题:如何有效培育潜在客户、如何提高营销活动的效果、如何优化营销资源的分配......企业的营销管理怎么做?或许CRM系统营销自动化会起到作用。 客户细分: 企业可以通过CRM的客户细分功能,根据客户…

408—电子笔记分享

一、笔记下载 链接:https://pan.baidu.com/s/1bFz8IX6EkFMWTfY9ozvVpg?pwddeng 提取码:deng b站视频:408-计算机网络-笔记分享_哔哩哔哩_bilibili 包含了408四门科目(数据结构、操作系统、计算机组成原理、计算机网络&#xff09…

MVCC多版本并发控制相关面试题整理

多版本并发控制是一种用于支持并发事务的数据库管理系统技术,它允许多个事务同时访问数据库,而不会相互干扰或导致数据不一致。MVCC通过在数据库中维护不同版本的数据来实现这一目标,从而允许每个事务看到一致的数据库快照。 并发导致的问题…

【漏洞复现】熊海cms 存在sql注入 附poc

漏洞描述 熊海CMS 是由熊海开发的一款可广泛应用于个人博客,个人网站,企业网站的一套网站综合管理系统。 其采用前后端整合设计思路,php,Apache,mysql,前端使用Bootstrap和少许jquery前端框架开发; 网站样式设计简洁大方,整体功能点并不多,但功能正好够用;拥有一个…