java和java如何实现合并两个有序链表
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,小编给大家分享一下java和java如何实现合并两个有序链表,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两
千家信息网最后更新 2025年12月01日java和java如何实现合并两个有序链表
小编给大家分享一下java和java如何实现合并两个有序链表,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
题目描述
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
解题方案
思路
标签:链表、递归
这道题可以使用递归实现,新链表也不需要构造新节点,恰好是文章套路解决递归问题的极好验证,我们下面列举递归三个要素
终止条件:两条链表分别名为l1和l2,当l1为空或l2为空时结束
返回值:每一层调用都返回排序好的链表头
本级递归内容:如果l1的val值更小,则将l1.next与排序好的链表头相接,l2同理
O(m+n),m为l1的长度,n为l2的长度
代码
Java版本
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1 == null) {
return l2;
}
if(l2 == null) {
return l1;
}
if(l1.val < l2.val) {
l1.next = mergeTwoLists(l1.next, l2);
return l1;
} else {
l2.next = mergeTwoLists(l1, l2.next);
return l2;
}
}
}
JavaScript版本
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var mergeTwoLists = function(l1, l2) {
if(l1 === null){
return l2;
}
if(l2 === null){
return l1;
}
if(l1.val < l2.val){
l1.next = mergeTwoLists(l1.next, l2);
return l1;
}else{
l2.next = mergeTwoLists(l1, l2.next);
return l2;
}
};
看完了这篇文章,相信你对"java和java如何实现合并两个有序链表"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
递归
有序
两个
版本
篇文章
节点
表头
长度
排序
极好
三个
代码
内容
套路
完了
思路
文章
方案
更多
条件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
新华区智能软件开发服务技术规范
腾讯互联网科技城规划
网络安全法56条
完美平台链接服务器
数据库适用级别
软件开发流程 维护
农业银行软件开发中心 成都
服务器连接如何修改
村级网络安全员怎么考
软件开发项目资料清单
山西工业软件开发成本价
服务器出现重置命令
阿里云服务器域名控制台
毕业设计软件开发
荟商信息科技谈互联网广告
node 简单服务器
分布式数据库技术+pdf
众测天下网络技术有限公
mysql查数据库
网络安全 记者节
未变异者服务器
平江县软件开发培训班
付软件开发费怎么做凭证
程序员与网络安全工程
软件开发去哪里买书
npg软件开发
多个数据库都执行同一条语句
用数据库查询excel
到梦空间显示服务器数据异常
数据库设编设修