1 /* 2 struct ListNode { 3 int val; 4 struct ListNode *next; 5 ListNode(int x) : 6 val(x), next(NULL) { 7 } 8 };*/ 9 class Solution { 10 public: 11 ListNode* Merge(ListNode* pHead1, ListNode* pHead2) 12 { 13 if(pHead1==NULL) 14 return pHead2; 15 else if(pHead2==NULL) 16 return pHead1; 17 18 ListNode * pNode1=pHead1;//尽量不在原来的指针上进行改动 19 ListNode * pNode2=pHead2; 20 ListNode *pMergeHead=NULL; 21 if(pNode1->val<pNode2->val) 22 { 23 pMergeHead=pNode1; 24 pMergeHead->next=Merge(pNode1->next,pNode2); 25 }else 26 { 27 pMergeHead=pNode2; 28 pMergeHead->next=Merge(pNode1,pNode2->next); 29 } 30 31 return pMergeHead; 32 33 } 34 };
原文:http://www.cnblogs.com/lou424/p/5047703.html