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

力扣热题100之合并两个有序链表

题目

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
在这里插入图片描述

代码

方法一:新建一个链表

这里就先随便新建一个节点作为一个链表的头节点,然后每次遍历都将小的那个节点放入这个链表,遍历完一个链表之后,将另一个链表后面的所有数都接在这个新链表后面,输出的时候从这个新链表的第二个节点开始输出。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:res=ListNode(1)#新链表prev = reswhile list1 and list2:if list1.val<=list2.val:prev.next=list1list1=list1.nextelse:prev.next=list2list2=list2.nextprev=prev.nextprev.next=list1 if list1 != None else list2return res.next

方法二:递归

只能说这个方法太强了,过程大概就像下面这个图这样
在这里插入图片描述

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:if not list1:return list2if not list2:return list1if list1.val<list2.val:list1.next=self.mergeTwoLists(list1.next,list2)return list1else:list2.next=self.mergeTwoLists(list1,list2.next)return list2

相关文章:

  • 软件架构师知识点总结
  • Java常用类-比较器
  • 华为云Flexus+DeepSeek征文|DeepSeek-V3/R1商用服务开通教程以及模型体验
  • [Java实战]Spring Boot 静态资源配置(十三)
  • ARM GIC(七)亲和路由:GICD_IROUTER寄存器具体如何与MPIDR配合使用?
  • 2050年的世界是怎样的?
  • tensorflow 1.x
  • AI智慧公园管理方案:用科技重塑市民的“夜游体验”
  • kubectl系列(十二):查询pod的resource 配置
  • C++编程中,什么是野指针?
  • Linux系统编程之消息队列
  • 关于TIAV20 PLCSIM仿真错误的原因
  • ST表(稀疏表)
  • Unity基础学习(十一)核心系统---光源系统基础
  • 机器人运动控制原理浅析-UC Berkeley超视觉模态模型
  • 【Python 算法零基础 2.模拟 ⑤ 基于栈和队列】
  • 【递归、搜索与回溯算法】导论
  • java加强 -List集合
  • 应急响应基础模拟靶机-security2
  • 御网杯2025 Web,Msic,密码 WP
  • 巴菲特最新调仓:一季度大幅抛售银行股,再现保密仓位
  • 张国清将赴俄罗斯举行中俄“长江—伏尔加河”地方合作理事会第五次会议和“东北—远东”政府间合作委员会双方主席会晤
  • 郑钦文憾负高芙,止步WTA1000罗马站四强
  • 国防部:赖清德歪曲二战历史,背叛民族令人不齿
  • “中国神湖”加快放大资源规模!3亿美元换海外年产380万吨钾盐项目
  • 京东CEO许冉:外卖日单量接近2000万单,看到外卖对平台拉动和转化效应