原题链接: 合成两个有序链表.
题目:
难度:
解析:
先创建一个哨兵位的节点,用来连接下来进行连接l1和l2的节点
如果l1指针指向的节点小于l2指针指向的节点,那么l1指针指向的节点连接在新链表的后面,并且l1的指针走一步;
否则l2指针指向的节点连接新链表的后面,l2的指针走一步;
循环条件是l1,l2都不为NULL
当有其中有一个是NULL,则跳出循环,并且将剩下的链表连接到新链表
最后将guard这个节点销毁掉,返回新链表的第一节点:
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
if(l1==NULL)//如果l1为空,则返回l2
{
return l2;
}
if(l2==NULL)
{
return l1;
}
struct ListNode* guard=NULL;
struct ListNode* tail=NULL;
guard=tail=(struct ListNode*)malloc(sizeof(struct ListNode));//创建哨兵位节点
while(l1&&l2)
{
if(l1->val<l2->val)//连接l1的节点
{
tail->next=l1;
l1=l1->next;
}
else//连接l2的节点
{
tail->next=l2;
l2=l2->next;
}
tail=tail->next;
}
if(l1==NULL)//连接剩下的节点
{
tail->next=l2;
}
if(l2==NULL)
{
tail->next=l1;
}
struct ListNode* head=guard->next;
free(guard);//销毁哨兵位
guard=NULL;
return head;//返回第一个节点
}
写代码的时候一般有编辑器的config通过快捷键的方式可以干掉上下左右按键。 但是...
苹果群控怎么投屏怎么把手机屏幕画面传送到电脑无限授权CLQK888 手机安装创联群...
前言 这套题中涉及到的知识点有 模拟、前缀和、贪心、快速排序、动态规划、结构...
Ewebeditor及fckeditor,90%的网站都是采用这两种编辑器作为产品或者内容的说明...
本文实例讲述了Jquery基于Ajax方法自定义无刷新提交表单Form的方法。分享给大家...
GetRef 函数 返回一个指向一过程的引用,此过程可绑定某事件。 Set object.event...
最近公司要使用vscode作为开发工具,需要对vscode做一些定制功能,比如snippet提...
文章目录 其他文章 1 基本命令 1.1 命令入门 1.1.1 命令提示符详解 1.1.2 命令格...
简介 “ 大家好我是帅哥欢迎来到帅哥的程序人生我会把经历分享出来助你了解圈内...
方法一: input id= File1 type= text disabled/ 不可用 方法二: input id= Fil...