合并两个有序链表c++
时间: 2023-07-11 16:38:14 浏览: 102
21合并两个有序链表.zip
可以使用递归的方法来合并两个有序链表,具体实现如下:
```c++
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if (!l1) return l2;
if (!l2) return l1;
if (l1->val < l2->val) {
l1->next = mergeTwoLists(l1->next, l2);
return l1;
} else {
l2->next = mergeTwoLists(l1, l2->next);
return l2;
}
}
};
```
在这个实现中,我们首先判断两个链表是否为空。如果其中一个链表为空,直接返回另一个链表即可。如果两个链表都不为空,我们比较两个链表头节点的值,将小的链表接到递归结果的后面,最后返回合并后的链表头节点。
阅读全文