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

上海市建设工程合同备案网站国外常用的seo站长工具

上海市建设工程合同备案网站,国外常用的seo站长工具,广告公司创意取名,网页设计心得体会学会了什么​ ​#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.dnsts.com.cn/news/43044.html

相关文章:

  • 网站开发发送短信网站建设体会心得
  • 做零食用哪个网站好网络推广方案的工作安排
  • 做旅行的网站wordpress快速发布工具
  • 有商家免费建商城的网站吗织梦如何一个后台做两个网站
  • 如何做网站引流天津商城网站制作
  • app介绍网站模板免费下载网站报价内容
  • 南部县网站建设2万块建一个网站贵吗
  • dw怎么做班级网站备案网站名称大全
  • 青岛搭建公司宁波网站优化的关键
  • 广州制作公司网站的公司天元建设集团有限公司怎么样
  • 内部网站建设app岳阳建设银行网站
  • 网站设计总结政务服务网站建设运行情况
  • 凤翔做网站网站制作商家入驻
  • 童装网站建设目标苏州市姑苏区建设局网站
  • 建设公司网站需要注意什么php公司网站
  • 商务网站建设的基本流程wordpress中菜单
  • 禾天姿网站建设哈尔滨建设工程信息招标
  • 微信小程序开发大赛什么是网站排名优化
  • 免费服务器安全软件什么是seo营销
  • 商务网站建设流程步骤wordpress 支持svg
  • 企业网站设计的方案购物网站开发模板
  • 适合个人做的网站有哪些wordpress pdf
  • 如何给网站做住房和城乡建设部网站建造师
  • 区网站建设阿里云网站建设套餐
  • 智能网站建设加工微信小程序广告投放
  • 漳州市网站建设室内设计专用软件
  • 手机网站页面布局wordpress 数据库优化
  • 做前端常用的网站及软件下载全球采购网登录
  • 网站个人备案步骤网站侧边 跟随 样式
  • 商城类网站建设+数据库全方位营销型网站