题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
求解思路
给出两个链表,我们需要先比较两个结点的头结点,将小的结点保存,然后将这个结点后面的链表与另一个链表继续比较,进行同样的处理 — 典型的递归。同时需要注意:
- 如果有其中一个链表为空,则返回另一链表
代码实现
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
if(!pHead1)return pHead2;
else if(!pHead2) return pHead1;
ListNode *p1,*p2,*reHead;
p1=pHead1,p2=pHead2;
if(p1->val<=p2->val){
reHead=p1;
p1->next=Merge(p1->next,p2);
}else{
reHead=p2;
p2->next=Merge(p1,p2->next);
}
return reHead;
}
};
运行时间:2ms
占用内存:476k