Title: Enter two incrementally sorted lists, merge the two linked lists, and make the nodes in the new list continue to be sorted in ascending order. The linked list is defined as follows:
struct listnode{int m_nvalue; Listnode* M_pnext;};
Analysis: The problem is a lot of pointers programming problems and program robustness, such as the input null pointer situation. The solution is as follows:
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;}
This article from "Fairy Road thousands of dust Dream" blog, please be sure to keep this source http://secondscript.blog.51cto.com/9370042/1583459
Merge two sorted lists