Node * Merge(Node *head1 , Node *head2)
{
if (head1 == NULL)
return head2;
if (head2 == NULL)
return head1;
Node *head, *p1, *p2;
if (head1->data < head2->data)
{
head = head1;
p1 = head1->next;
p2 = head2;
}
else
{
head = head2;
p2 = head2->next;
p1 = head1;
}
Node *pcurrent = head;
while (p1 != NULL && p2 != NULL)
{
if (p1->data <= p2->data)
{
pcurrent->next = p1;
pcurrent = p1;
p1 = p1->next;
}
else
{
pcurrent->next = p2;
pcurrent = p2;
p2 = p2->next;
}
}
if (p1 != NULL)
pcurrent->next = p1;
if (p2 != NULL)
pcurrent->next = p2;
return head;
}
分享到:
相关推荐
数据结构之合并两个有序链表PPT动画演示
合并两个有序链表.md
c语言链表的基本操作 c语言链表的基本操作之合并两个有序链表
合并两个有序链表(java代码).docx
示例 2:输出:[]示例 3:输出:[]* Definition for singly-linked list.//以合并两个有序链表为基础ListNode*
主要介绍了c++ 如何合并两个有序链表,帮助大家更好的理解和学习C++,感兴趣的朋友可以了解下
主要介绍了Python实现合并两个有序链表的方法,涉及Python操作链表节点的遍历、判断、添加等相关操作技巧,需要的朋友可以参考下
21. 合并两个有序链表瞎写的不带头结点的方法def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> Li
本文实例讲述了JS实现的合并两个有序链表算法。分享给大家供大家参考,具体如下: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4...
何将两个有序链表并为一个有序链表。
# 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的 # 示例: # 输入:1->2->4, 1->3->4 # 输出:1->1->2->3->4->4
两个有序链表的合并pta
将两个有序的链表合并为一个有序链表,链表的大小是可变的
C++版本将两个有序链表合并为一个新的有序链表并返回原理及代码实现
要合并两个有序链表,可以按照以下步骤进行: 1. 创建一个新的链表作为合并后的结果。 2. 遍历两个有序链表,比较它们的节点值。 3. 每次选择较小的节点值,将其插入到新链表中,并移动指针到下一个节点。 4. 当...
两个有序链表合并 链表插入 删除 修改等
思路:递归的空间复杂度O(T) = 递归调用的次数(R) * 计算时间复杂度的乘积O(s) O(T) = R * O(s)在两个链表中找最小值,找到直接返回,最
两个有序链表,合成为一个有序链表。文档中为升序模式。如果有需要的朋友们可以参考下代码。时间复杂度m+n,空间复杂度为2(m+n)