我们可以使用归并排序的思想来解决这个问题,具体步骤如下:
- 创建一个新链表C,以及三个指针:pA指向链表A的当前节点,pB指向链表B的当前节点,pC指向链表C的尾节点。
- 比较pA和pB指向节点的值,将较小的节点加入到链表C中,然后将对应的指针向后移动一位。
- 如果其中一个链表已经遍历完了,则将另一个链表的剩余部分加入到链表C的末尾。
- 重复步骤2和3直到两个链表都遍历完毕。
- 返回链表C。
以下是使用C语言实现的代码
#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int val