class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
// 1.如果链表1为空链表就返回链表2; 如果链表1为空链表就返回链表1
if (pHead1 == nullptr) return pHead2;
else if (pHead2 == nullptr) return pHead1;
// 2.定义一个新的合并链表链表
ListNode* pMergeHead = nullptr;
// 3.如果链表1的val小于链表2的val, 就把链表1的节点赋给合并链表的当前节点, 然后进入递归过程
// 4.链表1的val大于或等于链表2的val, 就把链表2的节点赋给合并链表的当前节点, 然后进入递归
if (pHead1->val < pHead2->val) {
pMergeHead = pHead1;
pMergeHead->next = Merge(pHead1->next, pHead2);
} else {
pMergeHead = pHead2;
pMergeHead->next = Merge(pHead1, pHead2->next);
}
// 5.返回合并链表
return pMergeHead;
}
};