已知L1和L2分别指向两个单链表的头结点,且已知其长度分别为m和n。试写一算法将这两个链表连接在一起,请分析你的算法的时间复杂度。
时间: 2024-03-26 16:38:20 浏览: 127
ZUC.zip_phraseyv5_zuc_zuc文档_zuc测试_zuc算法
5星 · 资源好评率100%
将两个链表连接在一起,实际上就是将 L2 链接到 L1 的末尾。因为已经给出了链表的长度 m 和 n,因此可以先遍历 L1 到其末尾,然后将 L2 连接到 L1 的末尾即可。时间复杂度为 $O(m)$。
下面是算法的具体实现(C++ 代码):
```
ListNode* joinTwoLists(ListNode* L1, ListNode* L2) {
if (L1 == NULL) {
return L2;
}
ListNode* p = L1;
while (p->next != NULL) {
p = p->next;
}
p->next = L2;
return L1;
}
```
其中,ListNode 是链表节点的结构体,包含一个值 val 和一个指向下一个节点的指针 next。L1 和 L2 分别是两个链表的头节点指针。
阅读全文