自己答案:
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 }