小黑星巴克冰镇浓缩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 ...
最新文章
- 用python设计学生管理系统_python+tkinter实现学生管理系统
- PHP实现http与https转化[转张宴]
- 机器性能这么好,为什么点击右键弹出菜单还这么慢?
- 前端常见知识点五之Fetch
- CRM_MESSAGES_DISPLAY debug
- linux 普通用户间切换,Linux中管理员用户与普通用户之间的切换
- 隐藏文件或文件夹属性无法修改解决方案
- new jQuery.common
- PSIM软件学习---06 元件参数文件应用
- [Ext JS6]多类型设备开发
- 关于Postgre中的Timestamp(时间戳)格式。
- IAP上线后查不到product id
- 数据库设计(一)——数据库设计
- Unity3D资源分享
- C++实现二叉树的非递归遍历
- 计算机科学顶级国际会议,顶级会议推荐:计算机科学理论会议5条
- js 获取每个月的第一天和最后一天日期
- Head First Servlet JSP读书笔记
- 使用谷歌身份验证器(Google Authenticator)保护你的后台
- basler相机外部硬触发,转换图像格式并发送到ROS下的topic
热门文章
- AWS上的游戏服务:Lumberyard + Amazon GameLift + Twitch
- 【文明6黑屏,修改分辨率成功解决】
- 苹果a10处理器_「解疑」苹果的T2芯片究竟起到了一个什么样的作用。
- 门槛(threshold)估计方法学习代码
- java oxm_Spring oxm入门实例
- 已知A点经纬度坐标,方位角角度,距离,求B点经纬度
- js——发表评论和分享功能
- 魔兽世界服务器都在什么位置,这些名人也来《魔兽世界》怀旧服了!看看他们都在什么服务器...
- 信号完整性的一些概念(2022年6月14日学习笔记)
- ansa导出NASTRAN的nas文件报错:warning: MATERIAL(s) were not output(undefined)