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

成都网站建设推荐安徽秒搜科技小程序如何推广运营

成都网站建设推荐安徽秒搜科技,小程序如何推广运营,网站设计需要那些模块,西安seo霸屏目录 题目要求 手搓简易单链表 代码实现 题目要求 现有一链表的头指针 ListNode* head #xff0c;给一定值 x #xff0c;编写一段代码将所有小于 x 的节点排在其余节点之前#xff0c;且不能改变原来的数据顺序#xff0c;返回重新排列后的链表的头节点 举例说明给一定值 x 编写一段代码将所有小于 x 的节点排在其余节点之前且不能改变原来的数据顺序返回重新排列后的链表的头节点 举例说明 输入x 5 ; [1,3,9,6,5,4,7,2] 输出[1,3,4,2,9,6,5,7] 手搓简易单链表 代码演示 struct ListNode* n1 (struct ListNode*)malloc(sizeof(struct ListNode)); assert(n1); struct ListNode* n2 (struct ListNode*)malloc(sizeof(struct ListNode)); assert(n2); struct ListNode* n3 (struct ListNode*)malloc(sizeof(struct ListNode)); assert(n3); struct ListNode* n4 (struct ListNode*)malloc(sizeof(struct ListNode)); assert(n4); struct ListNode* n5 (struct ListNode*)malloc(sizeof(struct ListNode)); assert(n5); struct ListNode* n6 (struct ListNode*)malloc(sizeof(struct ListNode)); assert(n6); struct ListNode* n7 (struct ListNode*)malloc(sizeof(struct ListNode)); assert(n7); struct ListNode* n8 (struct ListNode*)malloc(sizeof(struct ListNode)); assert(n8);n1-val 1; n2-val 3; n3-val 9; n4-val 6; n5-val 5; n6-val 4; n7-val 7; n8-val 2;n1-next n2; n2-next n3; n3-next n4; n4-next n5; n5-next n6; n6-next n7; n7-next n8; n8-next NULL; 代码实现 代码演示 struct ListNode* partition(struct ListNode* head, int x) {// 小于 x 的头尾节点struct ListNode* lesshead;struct ListNode* lesstail;// 大于等于 x 的头尾节点struct ListNode* greaterhead;struct ListNode* greatertail;// 定义哨兵位lesshead lesstail (struct ListNode*)malloc(sizeof(struct ListNode));greaterhead greatertail (struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* cur head;while (cur ! NULL){if (cur-val x){lesstail-next cur;lesstail lesstail-next;}else{greatertail-next cur;greatertail greatertail-next;}cur cur-next;}// 链接两个链表lesstail-next greaterhead-next;greatertail-next NULL;head lesshead-next;free(lesshead);free(greaterhead);return head; } 代码解析 代码思路创建两个带哨兵位的单链表一个用来链接小于 x 的节点一个用来链接大于等于 x 的节点最后再把两个链表进行链接这样就完成了链表的分割并且没有改变原来的数据顺序 代码逻辑lesshead 和 lesstail 用来管控小于 x 的节点lesshead 是哨兵位不存储有效数据lesstail 向后链接小于 x 的节点greaterhead 和 greatertail 作用同上是用来链接大于等于 x 的节点进行分割后不要忘记将 greatertail 的 next 置空因为分割后 greatertail 节点不一定是为节点最后再将 lesshead 哨兵位的 next 赋值给 head 再释放即可 代码验证 算法的时间和空间复杂度 while 循环执行了 N 次每次内部常数次只 malloc 开辟了两个节点可忽略不计 算法的时间复杂度O(N) 算法的空间复杂度O(1)
http://www.hkea.cn/news/14522619/

相关文章:

  • 25个经典网站源代码网站模板网站
  • 网站生成app注册贸易公司流程及费用
  • 爱企查在线查询西安网站排名优化
  • 基于mvc的jsp网站开发wordpress 4.7.11漏洞
  • 防城港网站seo南昌免费做网站
  • 网站开发属于什么大学专业网站备案 哪个省
  • 网站毕设网页版微信可以转账吗
  • 免费做网站推荐赤峰最好的网站建设公司
  • 物业建设网站临安规划建设局网站
  • 如何提升网站营销力wordpress不同侧边栏
  • 网站版面在线设计网站做镜像是什么
  • php网站的后台地址大连网络营销师招聘信息
  • 山东网站建设的方案建站宝盒全能版
  • 深圳网站搭建wordpress 酒店中文主题
  • 网站开发工具的功能有哪些域名注册免费平台
  • a站是什么网站搜索查询
  • 旅游外贸网站建设推广公司的网页设计
  • 深圳公司网站建设案例做市场调查分析的网站
  • 监理企业建设部网站年报详情页模板套用
  • 内蒙古网络公司有哪些重庆seo主管
  • 免费建自己域名的网站企业网站建设457216336
  • 网站做强制解析企业网站设计模板免费下载
  • 企业网站建设实训建议帮忙注册公司要多少钱
  • 做全景网站发布任务注册app推广的平台
  • 外网网站建设调研报告有没有做淘宝首页特效的网站
  • 有代做统计图的网站吗wordpress用什么解析好
  • 网站建设哪家有实力wordpress做导航页面模板
  • 免费建设网站的好么雷州市规划建设局网站
  • 不使用域名做网站宜飞思工业设计网站
  • 阿里云服务器的网站备案做购物网站支付需要怎么做