- 题目描述
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
- 思路
分治。
- C++实现
class Solution {
public:
ListNode* MergeRecur(ListNode* pHead1, ListNode* pHead2){
if(pHead1==NULL)return pHead2;
if(pHead2==NULL)return pHead1;
ListNode* MergeHead = NULL;
if(pHead1->val<pHead2->val){
MergeHead = pHead1;
MergeHead->next = MergeRecur(pHead1->next,pHead2);
}else{
MergeHead = pHead2;
MergeHead->next = MergeRecur(pHead1,pHead2->next);
}
return MergeHead;
}
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
return MergeRecur(pHead1,pHead2);
}
};