题目描述 合并两个排序的链表
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
解题思路
- 新建一个表头;
- 比较两个链表的头结点,让表头指向较小的头结点;
- 返回新建表头的下一个节点
代码
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{
if(!pHead1) return pHead2;
if(!pHead2) return pHead1;
ListNode *head = new ListNode(0);
ListNode *p = head;
while(pHead1&&pHead2){
if(pHead1->val<=pHead2->val){
head->next = pHead1;
pHead1 = pHead1->next;
head = head->next;
}else{
head->next = pHead2;
pHead2 = pHead2->next;
head = head->next;
}
}
if(pHead1) head->next = pHead1;
if(pHead2) head->next = pHead2;
return p->next;
}
};