小黑星巴克冰镇浓缩leetcode之旅:21. 合并两个有序链表
小黑的答案
# 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. 合并两个有序链表相关推荐
- 【LeetCode】【HOT】21. 合并两个有序链表(递归)
[LeetCode][HOT 100]21. 合并两个有序链表 文章目录 [LeetCode][HOT 100]21. 合并两个有序链表 package hot;import java.util.Ar ...
- [递归|迭代] leetcode 21 合并两个有序链表
[递归|迭代] leetcode 21 合并两个有序链表 1.题目 题目链接 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2 ...
- leetcode 21 java_LeetCode 21. 合并两个有序链表
LeetCode 21. 合并两个有序链表 题目 将两个升序链表合并为一个新的升序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1-> ...
- Java实现 LeetCode 21 合并两个有序链表
21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1 ...
- LeetCode 21. 合并两个有序链表(链表)
上一篇博客:LeetCode 20. 有效的括号(栈.字符串) 写在前面:大家好!我是ACfun,我的昵称来自两个单词Accepted和fun.我是一个热爱ACM的蒟蒻.最近萌生了刷LeetCode ...
- LeetCode 21合并两个有序链表22括号生成
微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...
- LeetCode 21. 合并两个有序链表(单链表)
文章目录 1. 题目信息 2. 解题 1. 题目信息 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例:输入:1->2->4, 1-> ...
- 【Java】leetCode 21 合并两个有序链表
题目 : 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 解题思路 : 1.依据以上两个升序链表进行拼接: 2.先定义一个傀儡节点newHead,用来 ...
- C++ leetcode 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
一.C++ 代码 class Solution { public:ListNode* insert(ListNode *res, int val) {if (res->val == INT_MA ...
最新文章
- 3、C语言面试笔试--控制结构
- Matlab:利用Matlab编程实现模拟分子布朗运动的动画展示
- 简练软考知识点整理-规划风险应对
- JVM从入门到精通(七):GC常用参数,Method Area,JVM调优案例分析
- 蓝牙模块音频BLE数据数传串口AT指令的使用方法
- 推荐标星 100 K 的 GitHub 开源项目
- 做旋转铁甲机器人_「铁甲评测」柳工CLG921E视频全面讲解
- 这 3 种 DDD 分层架构的模式,你掌握了么?
- nlp论文-《Neural Machine Translation by Jointly Learning to Align and Translate》-基于联合学习对齐和翻译的神经机器翻译(二)
- ebay如何确定同一电脑登陆了多个账号,以及同一账号登陆过多台电脑?
- ajax communication failed,AJAX没有收到错误
- cisco帧中继实验
- Mybatis常见面试题总结
- phpstudy linux安装教程
- 阿里云跨云迁移工具案例实践:腾讯云迁移到阿里云
- js实现视频直播,结合bilibili开源项目
- Mysql之账号管理、建库以及四大引擎【入门篇】
- 为什么说买腾讯云服务器通过代理商购买更划算
- HCIP(四)---BMA,NBMA网络类型
- MySQL 变量的详细讲解