两个有序单链表归并为一个有序单链表
c代码:
//定义节点
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
} ;
ListNode* Merge(ListNode* pHead1,ListNode* pHead2)
{
if(pHead1 == NULL)
return pHead2;
if(pHead2 == NULL)
return pHead1;
ListNode* pMergedHead = NULL;
if(pHead1->m_nValue<pHead2->m_nValue)
{
pMergedHead = pHead1;
pMergedHead->m_pNext = Merge(pHead1->m_pNext,pHead2);//递归建立
}
else
{
pMergedHead = pHead2;
pMergedHead->m_pNext = Merge(pHead1,pHead2->m_pNext);
}
return pMergedHead;
}
本文介绍了一种将两个已排序的单链表合并为一个排序单链表的方法,并提供了详细的C语言实现代码。通过递归的方式,该算法能有效地合并两个链表。
1224

被折叠的 条评论
为什么被折叠?



