小黑的答案

# 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]:a_link = list1b_link = list2head = ListNode()link = head# 直到一个链表打印完毕while a_link and b_link:if a_link.val > b_link.val:link.next = b_linklink = b_linkb_link = b_link.nextelse:link.next = a_linklink = a_linka_link = a_link.next# 有一个链表遍历完毕if a_link:link.next = a_linkelse:link.next = b_linkreturn head.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]:# 表1遍历完毕if not list1:return list2# 表2遍历完毕elif not list2:return list1# 判断两个头结点谁小,小的则拎出来elif list1.val > list2.val:list2.next = self.mergeTwoLists(list1,list2.next)return list2else:list1.next = self.mergeTwoLists(list1.next,list2)return list1

迭代法

# 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]:# 辅助头结点head = ListNode(-1)prev = head# 遍历两个表,直到一个为空while list1 and list2:if list1.val > list2.val:prev.next = list2list2 = list2.nextelse:prev.next = list1list1 = list1.nextprev = prev.next# 将prev链接到非空的链表中prev.next = list1 if list1 else list2return head.next

小黑生活现状

小黑星巴克冰镇浓缩leetcode之旅:21. 合并两个有序链表相关推荐

  1. 【LeetCode】【HOT】21. 合并两个有序链表(递归)

    [LeetCode][HOT 100]21. 合并两个有序链表 文章目录 [LeetCode][HOT 100]21. 合并两个有序链表 package hot;import java.util.Ar ...

  2. [递归|迭代] leetcode 21 合并两个有序链表

    [递归|迭代] leetcode 21 合并两个有序链表 1.题目 题目链接 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2 ...

  3. leetcode 21 java_LeetCode 21. 合并两个有序链表

    LeetCode 21. 合并两个有序链表 题目 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1-> ...

  4. Java实现 LeetCode 21 合并两个有序链表

    21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1 ...

  5. LeetCode 21. 合并两个有序链表(链表)

    上一篇博客:LeetCode 20. 有效的括号(栈.字符串)  写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.最近萌生了刷LeetCode ...

  6. LeetCode 21合并两个有序链表22括号生成

    微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...

  7. LeetCode 21. 合并两个有序链表(单链表)

    文章目录 1. 题目信息 2. 解题 1. 题目信息 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例:输入:1->2->4, 1-> ...

  8. 【Java】leetCode 21 合并两个有序链表

    题目 : 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 解题思路 : 1.依据以上两个升序链表进行拼接: 2.先定义一个傀儡节点newHead,用来 ...

  9. C++ leetcode 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

    一.C++ 代码 class Solution { public:ListNode* insert(ListNode *res, int val) {if (res->val == INT_MA ...

最新文章

  1. 用python设计学生管理系统_python+tkinter实现学生管理系统
  2. PHP实现http与https转化[转张宴]
  3. 机器性能这么好,为什么点击右键弹出菜单还这么慢?
  4. 前端常见知识点五之Fetch
  5. CRM_MESSAGES_DISPLAY debug
  6. linux 普通用户间切换,Linux中管理员用户与普通用户之间的切换
  7. 隐藏文件或文件夹属性无法修改解决方案
  8. new jQuery.common
  9. PSIM软件学习---06 元件参数文件应用
  10. [Ext JS6]多类型设备开发
  11. 关于Postgre中的Timestamp(时间戳)格式。
  12. IAP上线后查不到product id
  13. 数据库设计(一)——数据库设计
  14. Unity3D资源分享
  15. C++实现二叉树的非递归遍历
  16. 计算机科学顶级国际会议,顶级会议推荐:计算机科学理论会议5条
  17. js 获取每个月的第一天和最后一天日期
  18. Head First Servlet JSP读书笔记
  19. 使用谷歌身份验证器(Google Authenticator)保护你的后台
  20. basler相机外部硬触发,转换图像格式并发送到ROS下的topic

热门文章

  1. AWS上的游戏服务:Lumberyard + Amazon GameLift + Twitch
  2. 【文明6黑屏,修改分辨率成功解决】
  3. 苹果a10处理器_「解疑」苹果的T2芯片究竟起到了一个什么样的作用。
  4. 门槛(threshold)估计方法学习代码
  5. java oxm_Spring oxm入门实例
  6. 已知A点经纬度坐标,方位角角度,距离,求B点经纬度
  7. js——发表评论和分享功能
  8. 魔兽世界服务器都在什么位置,这些名人也来《魔兽世界》怀旧服了!看看他们都在什么服务器...
  9. 信号完整性的一些概念(2022年6月14日学习笔记)
  10. ansa导出NASTRAN的nas文件报错:warning: MATERIAL(s) were not output(undefined)