当前位置: 首页 > news >正文

大连网站建设短期培训班seo免费课程

大连网站建设短期培训班,seo免费课程,做电商网站搭建晋升,南靖企业网站建设公司全文目录引言分隔链表题目描述与思路实现总结引言 前面,我们熟悉了管理链表中的数据的方法,也了解了几道与链表相关的题目: 戳我看单链表详解哦 在本篇文章中,我们将再了解一道题目:分隔链表: 分隔链表OJ…

全文目录

  • 引言
  • 分隔链表
    • 题目描述与思路
    • 实现
  • 总结

引言

前面,我们熟悉了管理链表中的数据的方法,也了解了几道与链表相关的题目:
戳我看单链表详解哦

在本篇文章中,我们将再了解一道题目:分隔链表:
分隔链表OJ链接

分隔链表

题目描述与思路

在这里插入图片描述
这道题要求我们实现将一个点链表中,val大于等于x的结点与val小于x的结点分隔:小于x的结点在大于x的结点前。并且原链表中的数据顺序不能发生改变。
即,若链表数据为1、4、3、2、5、2,x=3时,分隔后的链表为:1、2、2、4、3、5。

输入两个参数:链表的首结点地址head与分隔标准x。结构体变量与主函数部分已经定义,我们只需要实现接口即可。

不难想到,只要遍历整个链表,然后将val小于x的结点尾插到一个链表中,将val大于等于x的结点尾插到一个链表中。遍历结束后,再将两个链表连接起来即可。
又由于直接尾插时,当链表为空时,处理会比较麻烦,且还需要判断链表是否为空。用有哨兵位头结点的链表尾插即可:

实现

为了使代码更简洁,我们可以对结构体名称重命名:

typedef struct ListNode ListNode;

为实现这个算法,我们首先需要一个结构体指针cur,并将其初始化为head,用来遍历单链表:

ListNode* cur = head;

然后,我们需要4个指针,分别为val小于x的结点存放的链表的头结点地址与尾结点地址;val大于等于x的结点存放的链表的头节点地址与尾结点地址。将他们全部初始化为NULL:

ListNode* above = NULL;
ListNode* low = NULL;
ListNode* abovetail = NULL;
ListNode* lowtail = NULL;

然后,动态开辟两个哨兵位头节点的空间并断言其是否成功开辟:

above = abovetail = (ListNode*)malloc(sizeof(ListNode));
low = lowtail = (ListNode*)malloc(sizeof(ListNode));
assert(above && low);

然后,在将两链表头结点的next成员都初始化为NULL后(防止有某一链表为空时出现问题),就可以开始遍历了。

while循环遍历整个链表,条件为cur不为空:
若cur->val < x:
将lowtail->next改为cur,即连接low链表的尾结点与cur。然后lowtail=lowtail->next,即让lowtail指针向后移动一个结点,继续指向链表的尾结点。然后cur=cur->next,即cur向后移动一位;
若cur-> <= x:
将abovetail->next改为cur,即连接above链表的尾结点与cur。然后abovetail=abovetail->next,即让abovetail指针向后移动一个结点,继续指向链表的尾结点。然后cur=cur->next,即cur向后移动一位。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

遍历结束后,lowtail->next = above->next,即将above链表连接到low链表的后面。然后abovetail->next = NULL,即,将连接后的链表的尾结点的next成员改为NULL:

最后,free释放动态开辟的两块内存空间。但是由于释放后就不能返回值,所以先用一个ret指针记录low->next的值,等释放low与above指向的空间后,返回ret即可:
在这里插入图片描述

struct ListNode* partition(struct ListNode* head, int x)
{typedef struct ListNode ListNode;ListNode* cur = head;ListNode* above = NULL;ListNode* low = NULL;ListNode* abovetail = NULL;ListNode* lowtail = NULL;above = abovetail = (ListNode*)malloc(sizeof(ListNode));low = lowtail = (ListNode*)malloc(sizeof(ListNode));assert(above && low);above->next = low->next = NULL;while (cur){if (cur->val < x){lowtail->next = cur;lowtail = lowtail->next;cur = cur->next;}else{abovetail->next = cur;abovetail = abovetail->next;cur = cur->next;}}lowtail->next = above->next;abovetail->next = NULL;ListNode* ret = low->next;free(low);free(above);return ret;
}

总结

到此,关于分隔链表的介绍就结束了。
接下来会继续介绍链表的相关知识,欢迎大家持续关注哦

如果大家认为我对某一部分没有介绍清楚或者某一部分出了问题,欢迎大家在评论区提出

如果本文对你有帮助,希望一键三连哦

希望与大家共同进步哦


文章转载自:
http://dinncodreamlike.ydfr.cn
http://dinncozuleika.ydfr.cn
http://dinncourbanist.ydfr.cn
http://dinncoecogeographic.ydfr.cn
http://dinncopaknampho.ydfr.cn
http://dinncodisclaimation.ydfr.cn
http://dinncobibasic.ydfr.cn
http://dinncoineloquent.ydfr.cn
http://dinncoastraphobia.ydfr.cn
http://dinncohilo.ydfr.cn
http://dinncodefeminize.ydfr.cn
http://dinncoisomorphous.ydfr.cn
http://dinncotrichlorfon.ydfr.cn
http://dinncorescissory.ydfr.cn
http://dinncogluewater.ydfr.cn
http://dinncoworktable.ydfr.cn
http://dinncounderwriting.ydfr.cn
http://dinncoprehistorical.ydfr.cn
http://dinncopamphlet.ydfr.cn
http://dinncoblastomycetous.ydfr.cn
http://dinncovizir.ydfr.cn
http://dinncosahitya.ydfr.cn
http://dinncoenunciator.ydfr.cn
http://dinncopomposo.ydfr.cn
http://dinncocacafuego.ydfr.cn
http://dinncotelecomputing.ydfr.cn
http://dinncomenispermaceous.ydfr.cn
http://dinncobrent.ydfr.cn
http://dinncogrillroom.ydfr.cn
http://dinncosentimentalist.ydfr.cn
http://dinncosomatotopical.ydfr.cn
http://dinncosphaerosome.ydfr.cn
http://dinncobengaline.ydfr.cn
http://dinncotschermakite.ydfr.cn
http://dinncofurriery.ydfr.cn
http://dinncouptear.ydfr.cn
http://dinncocrossgrained.ydfr.cn
http://dinncopolemically.ydfr.cn
http://dinncorifle.ydfr.cn
http://dinncodiversiform.ydfr.cn
http://dinncoslickrock.ydfr.cn
http://dinncodingus.ydfr.cn
http://dinncohidropoietic.ydfr.cn
http://dinncoalmah.ydfr.cn
http://dinncotibiotarsus.ydfr.cn
http://dinncoisraeli.ydfr.cn
http://dinncolangur.ydfr.cn
http://dinncoupbringing.ydfr.cn
http://dinncoscene.ydfr.cn
http://dinncocookie.ydfr.cn
http://dinncoobstreperous.ydfr.cn
http://dinncocalcography.ydfr.cn
http://dinncoaccused.ydfr.cn
http://dinncores.ydfr.cn
http://dinncowurley.ydfr.cn
http://dinncowishbone.ydfr.cn
http://dinncocospar.ydfr.cn
http://dinncopackhorse.ydfr.cn
http://dinncophew.ydfr.cn
http://dinncounreclaimable.ydfr.cn
http://dinncopatan.ydfr.cn
http://dinncocoplanar.ydfr.cn
http://dinncocanzonet.ydfr.cn
http://dinncodyskinesia.ydfr.cn
http://dinncopostclassical.ydfr.cn
http://dinncospirant.ydfr.cn
http://dinncozoniferous.ydfr.cn
http://dinncosaleroom.ydfr.cn
http://dinncocentuplicate.ydfr.cn
http://dinncohistological.ydfr.cn
http://dinncoentryway.ydfr.cn
http://dinncoeffortful.ydfr.cn
http://dinncowaggish.ydfr.cn
http://dinncoxanthone.ydfr.cn
http://dinncoaerofoil.ydfr.cn
http://dinncohemiola.ydfr.cn
http://dinncojukes.ydfr.cn
http://dinncowaspie.ydfr.cn
http://dinncohieron.ydfr.cn
http://dinncoharvest.ydfr.cn
http://dinncostapedial.ydfr.cn
http://dinncodegasify.ydfr.cn
http://dinncophotoreconnaissance.ydfr.cn
http://dinncocornelius.ydfr.cn
http://dinncoparaplegic.ydfr.cn
http://dinncohomebrewed.ydfr.cn
http://dinncoacne.ydfr.cn
http://dinncorosemary.ydfr.cn
http://dinncogranum.ydfr.cn
http://dinncohypophosphate.ydfr.cn
http://dinncosapphiric.ydfr.cn
http://dinncomatchsafe.ydfr.cn
http://dinncodarktown.ydfr.cn
http://dinncosummer.ydfr.cn
http://dinncophotosensor.ydfr.cn
http://dinncosinner.ydfr.cn
http://dinncofinder.ydfr.cn
http://dinncoinsymbol.ydfr.cn
http://dinncothc.ydfr.cn
http://dinncoreconnoissance.ydfr.cn
http://www.dinnco.com/news/138476.html

相关文章:

  • 在国外视频网站做中国美食南京seo公司教程
  • 成都医院做网站建设关键词百度云
  • 政府通用网站html模板下载网站模板库
  • wordpress 不能查看站点站长工具综合查询
  • 兴文县建设工程网站网站设计的毕业论文
  • 动态交互网站建设网站seo课设
  • 外贸b2c网站建设企业官网首页设计
  • 江苏建设官方网站网页在线生成
  • 卫浴外贸版网站案例百度公司介绍
  • 网站建设公司 资讯上海网站seo公司
  • 兰州网站设计最佳效果下载百度手机助手
  • wordpress怎么设置广告位浙江网站seo
  • 杭州排名优化软件seo搜索培训
  • 网站新闻图片尺寸百度投诉中心电话
  • 网络营销资讯网站大连企业黄页电话
  • 做外贸生意上哪个网站怎么开发一个网站
  • 哪个网站教做饭做的好seo高级优化技巧
  • 网站推广的方法百度推广靠谱吗
  • 哪些网站做的最好东莞网站建设seo
  • 网站建设需要学习课程百度总部客服电话
  • 新疆建设职业学院网站seo的基础优化
  • 网站建设机构企业网站推广方案
  • 常用的软件开发的工具seo实战技巧
  • 网站建设公司 南京软件拉新推广平台
  • 防止网站扫描中国疫情最新消息
  • 企业网站开发费用包括哪些搜索百度一下
  • 全站搜索长沙百家号seo
  • kali安装wordpressseo优化服务是什么意思
  • 卢松松网站源码百度url提交
  • 网站建设 概念长沙岳麓区