java和java如何实现合并两个有序链表
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,小编给大家分享一下java和java如何实现合并两个有序链表,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两
千家信息网最后更新 2025年01月24日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安全错误
数据库的锁怎样保障安全
数据库安装成功在哪打开
数据库技术上什么课
网络安全审查工作什么时候结束
服务器怎么还原到一小时前
南关区智能网络技术口碑推荐
阿里云云服务器搭建vps
不可识别的数据库格式怎么退出来
王者服务器无响应怎么办啊
智融网络技术有限公司怎么样
软件开发工具识别
学生网络安全教育有什么
用台式机做服务器
超级固话网络安全说明
关于审定购买服务器的请示
服务器自动开关机怎么固定时间
宁晋县网络安全和信息化
天尊网络技术有限公司
数据库查询数字区间
赛茶网络技术有限公司
我的世界数据库没有快捷方式
网络安全知识科普意义
网络技术经营部
计算机网络技术代码多少
新上市科技互联网公司的股票
瀑布式的软件开发图片
济南网络安全工程师待遇
边缘云服务器
河北迅博网络技术有限公司
网络安全的人为威胁
网络技术合同起诉地点