两个无序链表,完成链表 的合并且保证合并后的链表升序排列。
时间: 2024-01-04 11:17:10 浏览: 92
可以按照以下步骤完成链表的合并:
1. 定义一个新的链表,作为合并后的链表。
2. 遍历两个原链表,比较节点的值大小,将较小的节点插入到新链表中。
3. 如果其中一个链表已经遍历完了,将另一个链表的剩余部分直接插入到新链表中。
4. 返回新链表。
以下是C语言的代码实现:
```
#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int val;
struct ListNode *next;
};
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
struct ListNode *head = (struct ListNode*)malloc(sizeof(struct ListNode));
struct ListNode *cur = head;
while(l1 && l2){
if(l1->val < l2->val){
cur->next = l1;
l1 = l1->next;
}else{
cur->next = l2;
l2 = l2->next;
}
cur = cur->next;
}
cur->next = l1 ? l1 : l2;
return head->next;
}
```
阅读全文