21. 合并两个有序链表 - 力扣(LeetCode) (leetcode-cn.com)
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
创建结构体变量,用来接收比较完的节点,从头比较两个单链表,小的放在创建的结构体变量后面;相当于尾插,知道一方到尾,再把剩下的一方链到尾节点,返回首节点;
注意细节:
1.要再定义两个结构体变量,记录排好的链表首节点,另一个记录链表的尾节点,以便于尾插;
2.检查给的两个链表是否有空;
3.可以建立一个哨兵位的头,这样就不用先确定头节点了;
答案1:
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
//判断是否为空;如果有直接返回另一个链表
if (!l1)
{
return l2;
}
if (!l2)
{
return l1;
}
//创建两个结构体变量;
struct ListNode* res =