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

做盗版电影网站赚钱做网站定制

做盗版电影网站赚钱,做网站定制,wordpress抓取别人网站,百度企业推广怎么收费​ ​#x1f4dd;个人主页#xff1a;Sherry的成长之路 #x1f3e0;学习社区#xff1a;Sherry的成长之路#xff08;个人社区#xff09; #x1f4d6;专栏链接#xff1a;数据结构 #x1f3af;长路漫漫浩浩#xff0c;万事皆有期待 文章目录链表OJ题(六)1. 链表…​ ​个人主页Sherry的成长之路 学习社区Sherry的成长之路个人社区 专栏链接数据结构 长路漫漫浩浩万事皆有期待 文章目录链表OJ题(六)1. 链表分割思路一 带哨兵位的头结点思路二 不强行加头结点7.总结上一篇链表OJ题链接【链表OJ题(五)】合并两个有序链表 链表OJ题(六) 1. 链表分割 链接CM11 链表分割 描述 现有一链表的头指针 ListNode* pHead给一定值x编写一段代码将所有小于x的结点排在其余结点之前且不能改变原来的数据顺序返回重新排列后的链表的头指针。 思路一 带哨兵位的头结点 题目要求我们将小于 x 的节点和大于等于 x 的节点分隔小于 x 的节点在前大于等于 x 的节点在后且不能改变原来的数据顺序。 不能改变顺序就比较棘手如果没有这个条件我们可以用双指针来写。但是题目既然给出了要求我们就得想办法解决。 我们创建一个新链表存放小于 x 的值另一个存放大于等于 x 的值。然后遍历原链表将符合条件的值放入对应的链表中最后再将存放小于 x 的值的链表和存放大于等于 x 的值的链表链接起来。 那么这过程肯定是尾插本题使用哨兵位是十分合适的因为本题有很多的空指针处理的情况所以我们设定两个哨兵位 lessHead 、 greaterHead。 再给定两个尾lessTail 、 greaterTail用来尾插。 但是最后记得释放哨兵位。 注意如果以 greaterHead 结束的元素不是链表的最后一个元素(即原链表最后一个元素小于 x )就可能会造成 链表带环 的情况,因为尾插改变前一个链接关系没有改变自己的后一个链接关系所以需要断开环然后将 greaterTail 的 next 置为空。 代码 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://www.w-s-a.com/news/326026/

相关文章:

  • 做服装搭配图的网站有哪些经营一个网站要怎么做
  • 呼市品牌网站建设那家好增城住房和建设局网站
  • 网站首页布局设计代码太仓网站开发建设服务
  • 学校网站建设与管理porto wordpress模板
  • 余姚做网站公司网站建设有哪些基本流程
  • 门户网站建设的报价百度医生在线问诊
  • 北京公司注册在哪个网站浏览器打开网址404
  • 廊坊做网站公司绣花图案设计网站
  • 网站空间租用哪个好购物网站建设模板图片
  • 建设银行包头分行网站泰安网签成交量最新
  • 手机微网站与微官网现在去成都需要隔离吗
  • 学校的二级网站怎么建设深圳企业网站制作设计
  • 自己做qq头像静态的网站网站建设是属于软件开发费吗
  • 举报网站建设做网站之前的工作
  • 用QQ群做网站排名个人网站制作协议
  • 做茶叶网站的素材天津网站营销
  • 网站设计建设流程图微信端的网站开发python
  • 湖州网站seo优化网站改域名备案
  • dedecms怎么制作网站合肥电商网站开发
  • 网站开发通用流程图做flash的网站
  • 营销型网站有哪些平台网站建设藤设计
  • 网站需求分析网站建设美食网站建设多少钱
  • 有专门做网站的吗建德网站
  • 做网站要买服务器吗单页设计思路
  • 一 电子商务网站建设规划网站开发前端框架和后端框架
  • 自助网站建设系统软件自己免费建设网站
  • 百度微建站access如何与网站连接数据库
  • ppt素材免费网站网站正能量晚上免费软件
  • 个人淘宝客网站如何备案搭建一个平台要多少钱
  • nginx 网站建设淘客网站怎么做首页