C语言非递归实现合并两个有序链表
时间: 2023-09-08 11:08:15 浏览: 117
c++ 如何合并两个有序链表
5星 · 资源好评率100%
C语言非递归实现合并两个有序链表的代码片段如下:
```
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {
struct ListNode dummy; // 创建一个虚拟头节点
struct ListNode* tail = &dummy;
while (l1 && l2) { // 两个链表均有剩余节点
if (l1->val <= l2->val) {
tail->next = l1;
l1 = l1->next;
} else {
tail->next = l2;
l2 = l2->next;
}
tail = tail->next;
}
tail->next = l1 ? l1 : l2; // 将剩余节点全部加入到合并后的链表中
return dummy.next; // 返回虚拟头节点的下一个节点
}
```
请问是否满足您的要求呢?
阅读全文