合并两个排序的链表

 1 #include "stdafx.h"
 2 #include <iostream>
 3 /*
 4 题目:合并两个排序的链表
 5     输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。
 6     链表结点定义如下:
 7     struct ListNode
 8     {
 9         int m_nValue;
10         ListNode *m_pNext;
11     }
12 */
13 using namespace std;
14 struct ListNode
15     {
16         int m_nValue;
17         ListNode *m_pNext;
18     };
19 ListNode* Merge(ListNode* pHead1,ListNode* pHead2)
20 {
21     if(pHead1 == NULL)
22         return pHead2;
23     else if(pHead2 == NULL)
24         return pHead1;
25     ListNode* pMergedHead = NULL;
26     if(pHead1->m_nValue<pHead2->m_nValue)
27     {
28         pMergedHead = pHead1;
29         pMergedHead->m_pNext=Merge(pHead1->m_pNext,pHead2);
30     }
31     else
32     {
33         pMergedHead = pHead2;
34         pMergedHead->m_pNext=Merge(pHead1,pHead2->m_pNext);
35     }
36     return pMergedHead;
37 }
38 int _tmain(int argc, _TCHAR* argv[])
39 { 
40 
41     return 0 ;
42 }
原文地址:https://www.cnblogs.com/crazycodehzp/p/3561611.html