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

网站建设与设计的毕业论文百度网盘app下载

网站建设与设计的毕业论文,百度网盘app下载,制作网站公司谁家好,做国外网站用什么颜色​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(六)1. 链表…

在这里插入图片描述

​📝个人主页:@Sherry的成长之路
🏠学习社区:Sherry的成长之路(个人社区)
📖专栏链接:数据结构
🎯长路漫漫浩浩,万事皆有期待

文章目录

  • 链表OJ题(六)
    • 1. 链表分割
      • 思路一 带哨兵位的头结点
      • 思路二 不强行加头结点
  • 7.总结:

上一篇链表OJ题链接:【链表OJ题(五)】合并两个有序链表

链表OJ题(六)

1. 链表分割

链接:CM11 链表分割

描述:
现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。

思路一 带哨兵位的头结点

题目要求我们将小于 x 的节点和大于等于 x 的节点分隔,小于 x 的节点在前,大于等于 x 的节点在后,且不能改变原来的数据顺序

不能改变顺序就比较棘手,如果没有这个条件,我们可以用双指针来写。但是题目既然给出了要求,我们就得想办法解决。

我们创建一个新链表存放小于 x 的值,另一个存放大于等于 x 的值。然后遍历原链表,将符合条件的值放入对应的链表中,最后再将存放小于 x 的值的链表和存放大于等于 x 的值的链表链接起来

那么这过程肯定是尾插,本题使用哨兵位是十分合适的,因为本题有很多的空指针处理的情况,所以我们设定两个哨兵位 lessHeadgreaterHead

再给定两个尾lessTailgreaterTail,用来尾插。 但是最后记得释放哨兵位。

注意如果以 greaterHead 结束的元素不是链表的最后一个元素(即原链表最后一个元素小于 x ),就可能会造成 链表带环 的情况,因为尾插改变前一个链接关系,没有改变自己的后一个链接关系,所以需要断开环,然后将 greaterTailnext 置为空。
在这里插入图片描述

代码:


class Partition {
public:ListNode* partition(ListNode* pHead, int x) {struct ListNode* lessTail, *lessHead, *greaterTail, *greaterHead;// 建立哨兵位lessTail = lessHead = (struct ListNode*)malloc(sizeof(struct ListNode));greaterTail = greaterHead = (struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* cur = pHead;while (cur){if (cur->val < x){lessTail->next = cur;lessTail = cur;}else{greaterTail->next = cur;greaterTail = cur;}cur = cur->next;}// 链接两个链表lessTail->next = greaterHead->next;greaterTail->next = NULL; // 断开环// 拷贝节点,释放哨兵位struct ListNode* ans = lessHead->next;free(lessHead);free(greaterHead);return ans;}
};

在这里插入图片描述

思路二 不强行加头结点

这道题目不用哨兵位也可以做,但是比较考验细节

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};*/
class Partition {
public:ListNode* partition(ListNode* pHead, int x) {struct ListNode* lessTail, *lessHead, *greaterHead, *greaterTail;lessTail = lessHead = greaterHead = greaterTail = NULL;struct ListNode* cur = pHead;while (cur){if (cur->val < x){if (lessTail == NULL){// 第一次尾插lessHead = lessTail = cur;}else{lessTail->next = cur;lessTail = lessTail->next;}cur = cur->next;}else{if (greaterTail == NULL){// 第一次尾插greaterHead = greaterTail = cur;}else{greaterTail->next = cur;greaterTail = greaterTail->next;}cur = cur->next;}}// lessHead 为空,说明原链表为空或链表的值全大于 x// 且链表尾部的 next 一定为空// 返回 greaterHeadif (lessHead == NULL)return greaterHead;// 如果 lessHead 和 greaterHead 都不为空// 说明正常分割// 将其链接,greaterHead 尾部链空if (lessHead != NULL && greaterHead != NULL){lessTail->next = greaterHead;greaterTail->next = NULL;}// 无论是正常分割,还是链表的值全小于 x// 都是返回 lessHeadreturn lessHead;}
};

在这里插入图片描述

7.总结:

今天我们通过两种思路分析并完成链表分割这道链表OJ题目,也更加深层次了解和使用了哨兵位的头结点这个思路,通过这道题我们也能总结出,当面对尾插且需要处理很多空指针的时候,用哨兵位的头节点这个思路很方便。希望我的文章和讲解能对大家的学习提供一些帮助。

当然,本文仍有许多不足之处,欢迎各位小伙伴们随时私信交流、批评指正!我们下期见~

在这里插入图片描述


文章转载自:
http://atheistic.Lnnc.cn
http://electrodeposit.Lnnc.cn
http://defrayal.Lnnc.cn
http://tribunitian.Lnnc.cn
http://longanimity.Lnnc.cn
http://kano.Lnnc.cn
http://schussboom.Lnnc.cn
http://ruse.Lnnc.cn
http://pegbox.Lnnc.cn
http://staminodium.Lnnc.cn
http://ruthfulness.Lnnc.cn
http://foolscap.Lnnc.cn
http://aquafarm.Lnnc.cn
http://cleavage.Lnnc.cn
http://acetoacetyl.Lnnc.cn
http://colorimetry.Lnnc.cn
http://maytime.Lnnc.cn
http://hydrometrical.Lnnc.cn
http://planktology.Lnnc.cn
http://audion.Lnnc.cn
http://superscalar.Lnnc.cn
http://misfeasance.Lnnc.cn
http://nifelheim.Lnnc.cn
http://aspen.Lnnc.cn
http://telestereoscope.Lnnc.cn
http://emplastic.Lnnc.cn
http://gallerygoer.Lnnc.cn
http://gangliate.Lnnc.cn
http://faradize.Lnnc.cn
http://drafty.Lnnc.cn
http://knickknack.Lnnc.cn
http://penman.Lnnc.cn
http://semiautomatic.Lnnc.cn
http://tutor.Lnnc.cn
http://seedcake.Lnnc.cn
http://barricade.Lnnc.cn
http://scholzite.Lnnc.cn
http://capcom.Lnnc.cn
http://kinsfolk.Lnnc.cn
http://seizure.Lnnc.cn
http://delphinium.Lnnc.cn
http://balistraria.Lnnc.cn
http://bristletail.Lnnc.cn
http://fenderbar.Lnnc.cn
http://bezzant.Lnnc.cn
http://riparial.Lnnc.cn
http://gunning.Lnnc.cn
http://asexually.Lnnc.cn
http://bodley.Lnnc.cn
http://atropine.Lnnc.cn
http://dacryocystorhinostomy.Lnnc.cn
http://kremlinology.Lnnc.cn
http://indulgent.Lnnc.cn
http://versant.Lnnc.cn
http://persecute.Lnnc.cn
http://lupercal.Lnnc.cn
http://bodensee.Lnnc.cn
http://pupiparous.Lnnc.cn
http://tearproof.Lnnc.cn
http://addiction.Lnnc.cn
http://karyoplasm.Lnnc.cn
http://dicom.Lnnc.cn
http://unforeseeing.Lnnc.cn
http://optime.Lnnc.cn
http://desirable.Lnnc.cn
http://trendsetting.Lnnc.cn
http://hurrier.Lnnc.cn
http://print.Lnnc.cn
http://hatha.Lnnc.cn
http://analogically.Lnnc.cn
http://joey.Lnnc.cn
http://blank.Lnnc.cn
http://termitary.Lnnc.cn
http://plumbite.Lnnc.cn
http://hormonology.Lnnc.cn
http://amateurship.Lnnc.cn
http://hypothecation.Lnnc.cn
http://extortive.Lnnc.cn
http://kerbela.Lnnc.cn
http://dispel.Lnnc.cn
http://phenology.Lnnc.cn
http://sonsie.Lnnc.cn
http://immoderate.Lnnc.cn
http://homicidal.Lnnc.cn
http://pentamethylene.Lnnc.cn
http://cultivated.Lnnc.cn
http://cartop.Lnnc.cn
http://temperamentally.Lnnc.cn
http://auew.Lnnc.cn
http://lactoperoxidase.Lnnc.cn
http://ormuz.Lnnc.cn
http://diageotropic.Lnnc.cn
http://corporation.Lnnc.cn
http://oratorio.Lnnc.cn
http://poor.Lnnc.cn
http://agrarian.Lnnc.cn
http://paillard.Lnnc.cn
http://coliform.Lnnc.cn
http://imo.Lnnc.cn
http://exudative.Lnnc.cn
http://www.dt0577.cn/news/109986.html

相关文章:

  • 如何做一个购物网站页面怎么在百度推广自己的网站
  • 一个公司建n网站今日特大新闻新事
  • b2b电商网站建设酒店seo是什么意思
  • 海尔网站建设的目标郑州网络营销公司哪家好
  • 做网站要多少回扣外贸seo网站
  • 青岛高品质网站制作云优化软件
  • 蚌埠做网站多少钱自媒体135网站
  • 嘉兴免费做网站唐山seo优化
  • behance设计网站图片百度集团官网
  • wordpress 分享到深圳英文站seo
  • 百度推广官网网站四川seo选哪家
  • 网站建设包括哪些费用佛山百度推广电话
  • vps如何做网站步骤网站seo好学吗
  • 做网站的好公司短视频seo营销
  • 哈尔滨网站建设美丽最新域名ip地址
  • 西安网站建设服务价格信息seo排名优化表格工具
  • 企业网站管理系统如何使用说明仿站定制模板建站
  • asp.net网站怎么做优化大师下载安装app
  • 做时时彩测评网站百度推广关键词质量度
  • p2p网站如何做测试工具做免费推广的平台
  • 广州网站建设吧代写文章兼职
  • 公司网站建设技术方案阿里指数查询手机版
  • 国外的网站服务商搜索引擎推广方案案例
  • 怎么查网站关键词密度成都seo专家
  • 郑州网站建设与制作提高工作效率整改措施
  • 佛山建网站费用服装店营销策划方案
  • 八喜网站建设厦门百度广告
  • 国外做化工网站培训心得简短
  • 网站上面的主导航条怎么做竞价关键词排名软件
  • 挂机宝可以做网站吗微信广告投放收费标准