"#include \nusing namespace std;\n\n// 定义链表节点结构体\nstruct ListNode {\n int val;\n ListNode* next;\n ListNode(int x) : val(x), next(NULL) {}\n};\n\n// 合并两个有序链表的函数\nListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {\n // 定义一个虚拟头节点\n ListNode* dummy = new ListNode(0);\n ListNode* curr = dummy;\n\n // 遍历两个链表,比较节点值大小,将较小的节点接入新链表\n while (l1 && l2) {\n if (l1->val < l2->val) {\n curr->next = l1;\n l1 = l1->next;\n } else {\n curr->next = l2;\n l2 = l2->next;\n } \n curr = curr->next;\n }\n\n // 将剩余的节点接入新链表\n curr->next = l1 ? l1 : l2;\n\n // 返回新链表的头节点\n return dummy->next;\n}\n\n// 打印链表的函数\nvoid printList(ListNode* head) {\n ListNode* curr = head;\n while (curr) {\n cout << curr->val << " ";\n curr = curr->next;\n }\n cout << endl;\n}\n\nint main() {\n // 创建第一个有序链表:1->2->4\n ListNode* l1 = new ListNode(1);\n l1->next = new ListNode(2);\n l1->next->next = new ListNode(4);\n\n // 创建第二个有序链表:1->3->4\n ListNode* l2 = new ListNode(1);\n l2->next = new ListNode(3);\n l2->next->next = new ListNode(4);\n\n // 合并两个有序链表\n ListNode* mergedList = mergeTwoLists(l1, l2);\n\n // 打印合并后的链表\n printList(mergedList);\n\n return 0;\n}\n"\n"1 1 2 3 4 4"\n\n这表示合并后的有序链表为:1->1->2->3->4->4。"\n