写出将两个有序链表合并的C++代码
时间: 2023-09-02 10:09:47 浏览: 85
C++实现合并两个排序的链表
5星 · 资源好评率100%
好的,以下是将两个有序链表合并的C++代码,使用了递归的方法:
```c++
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if(l1 == NULL) return l2;
if(l2 == NULL) return l1;
ListNode* res = NULL;
if(l1->val <= l2->val) {
res = l1;
res->next = mergeTwoLists(l1->next, l2);
} else {
res = l2;
res->next = mergeTwoLists(l1, l2->next);
}
return res;
}
};
```
其中,`ListNode` 是链表节点的定义。我们首先判断两个链表是否为空,如果有一个为空,直接返回另一个链表即可。如果两个链表都不为空,则比较两个链表头节点的值,将较小的节点作为结果链表的头节点,并递归地将其余节点合并到结果链表中。最后返回结果链表的头节点即可。
阅读全文