题目链接:合并两个排序的链表
题意:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
解题思路:
利用递归的形式,先判断大小,然后递归
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2){
if(pHead1 == NULL){ // 如果链表1为空,返回链表2
return pHead2;
}
if(pHead2 == NULL){ // 如果链表2为空,返回链表1
return pHead1;
}
ListNode *pMerge = NULL; // 设置中间指针
if(pHead1->val < pHead2->val){
pMerge = pHead1;
pMerge->next = Merge(pHead1->next, pHead2); // 元素小的放在参数1的位置
}
else{
pMerge = pHead2;
pMerge->next = Merge(pHead2->next, pHead1);
}
return pMerge;
}
};