小黑的答案

# 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. 3、C语言面试笔试--控制结构
  2. Matlab:利用Matlab编程实现模拟分子布朗运动的动画展示
  3. 简练软考知识点整理-规划风险应对
  4. JVM从入门到精通(七):GC常用参数,Method Area,JVM调优案例分析
  5. 蓝牙模块音频BLE数据数传串口AT指令的使用方法
  6. 推荐标星 100 K 的 GitHub 开源项目
  7. 做旋转铁甲机器人_「铁甲评测」柳工CLG921E视频全面讲解
  8. 这 3 种 DDD 分层架构的模式,你掌握了么?
  9. nlp论文-《Neural Machine Translation by Jointly Learning to Align and Translate》-基于联合学习对齐和翻译的神经机器翻译(二)
  10. ebay如何确定同一电脑登陆了多个账号,以及同一账号登陆过多台电脑?
  11. ajax communication failed,AJAX没有收到错误
  12. cisco帧中继实验
  13. Mybatis常见面试题总结
  14. phpstudy linux安装教程
  15. 阿里云跨云迁移工具案例实践:腾讯云迁移到阿里云
  16. js实现视频直播,结合bilibili开源项目
  17. Mysql之账号管理、建库以及四大引擎【入门篇】
  18. 为什么说买腾讯云服务器通过代理商购买更划算
  19. HCIP(四)---BMA,NBMA网络类型
  20. MySQL 变量的详细讲解

热门文章

  1. linux保存shell脚本,linux – bash如何保存shell脚本
  2. Three.js--》几何体顶点知识讲解
  3. HDUOJ 2042不容易系列之二
  4. 电路仿真软件详谈(29),在单片机开发环境中引入proteus电路仿真软件
  5. 离职前,该不该把所有的不满告诉领导?
  6. 计算机软件系统及功能,系统软件
  7. 联发科今年难乐观,将持续面临压制
  8. 1006: 求等差数列的和 Python
  9. argsort()用法
  10. XJOI‘s story (不定期连载)