当前位置: 首页 > news >正文

力扣hot100 - 21、合并两个有序链表

题目:思路一:迭代
整体思路:如上例所示,

当 l1 和 l2 都不是空链表时,判断 l1 和 l2 哪一个链表的头节点的值更小,将较小值的节点添加到结果里,当一个节点被添加到结果里之后,将对应链表中的节点向后移一位

具体实现:我们需要拿一个哨兵节点dummy 来存储后面的有序的节点(还能便于最后返回结果,return dummy.next,不然返回结果很麻烦),然后用tail来维护合并后有序节点的尾部;不断l1和l2的大小,谁小tial就指向谁,同时小的一方后移;知道一方为null;最后tail指向不为空的一方。

时间复杂度O(m+n)空间复杂度O(1)

代码:

/** * 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 dummy = new ListNode(); ListNode tail = dummy; while( list1 != null && list2 != null){ if(list1.val >= list2.val){ tail.next = list2; list2 = list2.next; }else{ tail.next = list1; list1 = list1.next; } tail = tail.next; } if( list1 != null){ tail.next = list1; } if(list2 != null){ tail.next = list2; } return dummy.next; } }
http://www.jsqmd.com/news/140240/

相关文章:

  • 2025年西北大学计算机考研复试机试真题(附 AC 代码 + 解题思路)
  • 什么是无代码平台?它能为企业解决什么问题?
  • STM32智能手环:心率血氧体温监测系统设计与实现
  • Kiro Remote SSH 无法连接远程服务器问题排查与解决
  • 基于STM32的智能鱼缸控制系统设计与实现
  • 电脑的时间从哪里来的?
  • 基于STM32的智能花盆系统设计与实现
  • 微信小程序uniapp-vue英语在线学习系统每日签到打卡
  • 微信小程序uniapp-vue英语在线学习系统每日签到打卡
  • LRU缓存
  • static关键字
  • ubuntu22.04安装中文输入法且与ros2与clion不冲突
  • 2025年南京理工大学计算机考研复试机试真题(附 AC 代码 + 解题思路)
  • leetcode热题岛屿数量
  • ubuntu安装PostgreSQL
  • 微信小程序uniapp-vue运动健身户外运动体能训练系统
  • 2025年华南师范大学计算机考研复试机试真题(附 AC 代码 + 解题思路)
  • 基于SpringBoot的海洋环保小程序系统(毕业设计项目源码+文档)
  • 微信小程序uniapp-vue音乐播放器
  • 靠谱的口碑靠前不踩雷大落地窗品牌杰出生产厂家
  • 12月25日记
  • 方达炬 发明一批指标
  • C语言(一)
  • 微信小程序uniapp-vue自驾游资助定制游旅游线路景点评论系统
  • Linux Kernel (一) 计算机启动流程简述
  • 【图像处理基石】什么是神经渲染?
  • 微信小程序uniapp-vue英语学习小助手的设计
  • 1.1 一维数组(markdown版)
  • 基于SpringBoot的公司财务预算管理系统(毕业设计项目源码+文档)
  • HBase与Jupyter:交互式数据分析