题目:合并两个单向有序链便,保证合并之后的链表依然是有序的。
例如:1->3->5和2->4->8
合并完之后:1->2->3->4->5->8
思路:运用递归,很简洁。
代码如下:
1 ListNode *CombineList(ListNode *List1, ListNode *List2) 2 { 3 if (NULL == List1) 4 { 5 return (List2); 6 } 7 8 if (NULL == List2) 9 { 10 return (List1); 11 } 12 13 ListNode *pHead = NULL; 14 15 if (List1->nData < List2->nData) 16 { 17 pHead = List1; 18 19 pHead->next = CombineList (List1->next, List2); 20 } 21 else 22 { 23 pHead = List2; 24 25 pHead->next = CombineList (List1, List2->next); 26 } 27 28 return (pHead); 29 }
一个测试结果: