[leetcode]Merge Two Sorted Lists

Merge Two Sorted Lists

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

算法思路:

以l1为基准,拿l2的点逐个插入到l1中,两个链表都是一次遍历,我这里没有做优化,时间复杂度O(m+n),空间复杂度O(1)

 

复制代码
 1 public class Solution {
 2     public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
 3         if(l1 == null) return l2;
 4         if(l2 == null) return l1;
 5         ListNode head = new ListNode(1);
 6         head.next = l1;
 7         ListNode pre = head;
 8         ListNode node = l2;
 9         while(l2 != null){
10             node = l2;
11             while(pre.next != null && pre.next.val <= node.val){
12                 pre = pre.next;
13             }
14             l2 = node.next;
15             node.next = pre.next;
16             pre.next = node;
17             pre = node;//如果这句删掉的话,相当于l2扫描了两边,l1扫描一遍,但是时间复杂度不变
18         }
19         return head.next;
20     }
21 }
复制代码

posted on   喵星人与汪星人  阅读(292)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示