自己答案:

 1 ListNode* MergeTwoSortedList(ListNode* pHead1,ListNode* pHead2)
 2 {
 3     if(pHead1==nullptr&&pHead2==nullptr)
 4         return nullptr;
 5 
 6     if(pHead1==nullptr)
 7         return pHead2;
 8 
 9     if(pHead2==nullptr)
10         return pHead1;
11 
12     ListNode* pHead=(pHead1->m_Value<pHead2->m_Value)?pHead1:pHead2;
13 
14     ListNode* pNode1=pHead1;
15     ListNode* pNode2=pHead2;
16     while(pNode1!=nullptr&&pNode2!=nullptr)
17     {
18         ListNode* pNext1=pNode1->m_pNext;
19         ListNode* pNext2=pNode2->m_pNext;
20 
21         if(pNode1->m_Value<pNode2->m_Value)
22         {
23             if((pNext1!=nullptr&&pNext1->m_Value>pNode2->m_Value)||pNext1==nullptr)
24                 pNode1->m_pNext=pNode2;
25             pNode1=pNext1;
26         }
27         else
28         {
29             if((pNext2!=nullptr&&pNext2->m_Value>pNode1->m_Value)||pNext2==nullptr)
30                 pNode2->m_pNext=pNode1;
31             pNode2=pNext2;
32         }
33     }
34     return pHead;
35 }
函数

相关文章: