java和java如何实现合并两个有序链表
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下java和java如何实现合并两个有序链表,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两
千家信息网最后更新 2026年11月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安全错误
数据库的锁怎样保障安全
咖啡
互联网黑科技
艾特科技互联网
无线互联网科技
居家互联网科技有限公司
银川新华互联网科技学校地址
玖二柒互联网科技公司待遇
西藏七维空间互联网科技有限公司
科技互联网的估值
字节跳动和互联网科技
昭通互联网科技选哪家
搜狐科技互联网
厦门江牛科技互联网
2021世界互联网领先科技成果发布
抖集互联网科技技术咨询
互联网高科技行业有哪些企业
米泉互联网科技专业怎么样
互联网科技自媒体灵感
知域互联网科技有限公司官网
互联网科技快速发展优美句子
互联网为科技
互联网 新科技
济南和联互联网科技有限公司
互联网科技教育视频
恒生互联网科技指数跳水
上海乐五互联网科技有限公司
广州智享互联网科技
张家口科技产业互联网平台
互联网时代高科技布局
盐城市攀科互联网科技有限公司