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

五金店网站模板无锡百度公司代理商

五金店网站模板,无锡百度公司代理商,手机怎么建立自己网站,wordpress前台编辑器目录 1. 题目描述及链接 2. 解题思路 2.1 思路1 2.2 思路2 2.3 思路3(本题采取该解法) 3. 题解程序 1. 题目描述及链接 题目链接:面试题 02.04. 分割链表 - 力扣(LeetCode) 题目描述: 给你一个链表…

目录

1. 题目描述及链接

2. 解题思路

2.1 思路1 

2.2 思路2

2.3 思路3(本题采取该解法)

3. 题解程序


1. 题目描述及链接

题目链接:面试题 02.04. 分割链表 - 力扣(LeetCode)

题目描述:

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。
你不需要 保留 每个分区中各节点的初始相对位置。

2. 解题思路

2.1 思路1 

创建结构体指针变量curNode遍历原链表:

当curNode的val值大于给定的X时,将该结点尾插后释放该结点;

当curNode的val值小于给定的X时,保持该结点不动,再检查下一结点;

2.2 思路2

重新创建一个新链表,并为其设置一个哨兵位。

创建指针变量curNode遍历原链表,当curNode的val值大于给定的X时,进行尾插操作;

当curNode的val值小于给定的X时,进行头插操作。

2.3 思路3(本题采取该解法)

总思路:

创建两个新链表:大链表和小链表。

创建指针变量curNode遍历原链表,当curNode的val值小于给定的X时,尾插到小链表;

当curNode的val值大于给定的X时,尾插到大链表;

具体思路:

(1)为实现大小链表的正确尾插,需要创建对应指针变量指向当前的尾结点,并在插入后更新尾结点。分别命名为greaterTail和lessTail;

(2)同时,新建链表为空时,空指针->next会导致空指针解引用。故而新链表为空需单独讨论,较为麻烦。此处采用设置哨兵位,分别记为greaterHead和greaterTail:

(3)由于创建了头结点(哨兵位),最后需手动释放;

(4)注意由于哨兵位并不存放实际有效的值,故大链表链接到小链表尾部时,实际链接的大链表第一个结点是greaterHead->next;最后返回新链表的第一个结点是lessHead->next;

(5)考虑特殊情况,若原链表为空,则大小链表仅有哨兵位,即greaterHead->next为NULL,lessTail->next也为NULL,直接返回NULL即可。

3. 题解程序

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
typedef struct ListNode ListNode;
struct ListNode* partition(struct ListNode* head, int x) {if(head==NULL){return NULL;}// 创建两个带头链表ListNode* lessHead,*lessTail;ListNode* greaterHead,*greaterTail;lessHead=lessTail=(ListNode*)malloc(sizeof(ListNode));greaterHead=greaterTail=(ListNode*)malloc(sizeof(ListNode));// 遍历原链表,将结点分别尾插到大小链表ListNode* curNode=head;while(curNode!=NULL){if(curNode->val < x){// 尾插到小链表中lessTail->next=curNode;lessTail=lessTail->next;}else{// 尾插到大链表中greaterTail->next=curNode;greaterTail=greaterTail->next;}curNode=curNode->next;}greaterTail->next=NULL;// 链接大小链表:小前大后lessTail->next=greaterHead->next;// 存小链表第一个有效结点,并释放头结点ListNode* newHead=lessHead->next;free(lessHead);free(greaterHead);lessHead=lessTail=NULL;return newHead;
}

注意:

1、必须要将大链表的尾指针的next指针置为NULL,否则会成环,报错为超出时间限制

分析如下:

2、greaterTail->next=NULL 语句必须在 lessTail->next=greaterHead->next语句之前

假设跳出while循环后的代码顺序如下:

// 链接大小链表:小前大后
lessTail->next=greaterHead->next;
greaterTail->next=NULL;

提交报错如下:

这个错误表明程序试图访问一个未正确对齐的内存地址,

通常是由于结构体成员未正确初始化或内存分配问题导致的

考虑原链表为[1](单个结点),x=2的情况

由于在while循环中仅执行了if分支并没有执行else分支,

greaterHead仅调用malloc申请了空间,并未为其val及next赋值。

此时直接使用greaterTail->next为lessTail->next赋值,会导致赋值为随机值。

令greaterTail->next=NULL 语句在 lessTail->next=greaterHead->next语句之前,可以保证greaterHead和greaterTail被初始化为NULL。


文章转载自:
http://bondieuserie.qpnb.cn
http://unaware.qpnb.cn
http://ratch.qpnb.cn
http://specification.qpnb.cn
http://transdisciplinary.qpnb.cn
http://discriminance.qpnb.cn
http://speediness.qpnb.cn
http://vindicatory.qpnb.cn
http://spr.qpnb.cn
http://pictorialist.qpnb.cn
http://horizontally.qpnb.cn
http://miscalculate.qpnb.cn
http://preagricultural.qpnb.cn
http://intersubjective.qpnb.cn
http://stairhead.qpnb.cn
http://steamroller.qpnb.cn
http://dispense.qpnb.cn
http://goosie.qpnb.cn
http://demystify.qpnb.cn
http://pixmap.qpnb.cn
http://eyewall.qpnb.cn
http://simitar.qpnb.cn
http://preprimer.qpnb.cn
http://subtraction.qpnb.cn
http://sponge.qpnb.cn
http://spermatozoid.qpnb.cn
http://imbibe.qpnb.cn
http://marquee.qpnb.cn
http://brimstone.qpnb.cn
http://icicle.qpnb.cn
http://cordilleras.qpnb.cn
http://pedlery.qpnb.cn
http://xanthin.qpnb.cn
http://reprofile.qpnb.cn
http://catalonian.qpnb.cn
http://winston.qpnb.cn
http://felicia.qpnb.cn
http://superoxide.qpnb.cn
http://perceptivity.qpnb.cn
http://oxygenous.qpnb.cn
http://belgrade.qpnb.cn
http://golan.qpnb.cn
http://neogene.qpnb.cn
http://urbanist.qpnb.cn
http://tarlatan.qpnb.cn
http://jaculatory.qpnb.cn
http://hadj.qpnb.cn
http://methoxamine.qpnb.cn
http://trews.qpnb.cn
http://semicentury.qpnb.cn
http://holmium.qpnb.cn
http://spiritualism.qpnb.cn
http://filter.qpnb.cn
http://glamourous.qpnb.cn
http://tardo.qpnb.cn
http://xanthoconite.qpnb.cn
http://vitrum.qpnb.cn
http://printing.qpnb.cn
http://discriminative.qpnb.cn
http://thorax.qpnb.cn
http://trumpeter.qpnb.cn
http://matriarch.qpnb.cn
http://trichinellosis.qpnb.cn
http://pachyosteomorph.qpnb.cn
http://glaziery.qpnb.cn
http://unvalued.qpnb.cn
http://yam.qpnb.cn
http://caenozoic.qpnb.cn
http://peptic.qpnb.cn
http://crampon.qpnb.cn
http://scrapple.qpnb.cn
http://paraparesis.qpnb.cn
http://reparable.qpnb.cn
http://phyle.qpnb.cn
http://convincible.qpnb.cn
http://inconclusive.qpnb.cn
http://immunodiffusion.qpnb.cn
http://trilogy.qpnb.cn
http://timeslice.qpnb.cn
http://medivac.qpnb.cn
http://communionist.qpnb.cn
http://centinewton.qpnb.cn
http://referrable.qpnb.cn
http://foozle.qpnb.cn
http://saltchuck.qpnb.cn
http://arcuation.qpnb.cn
http://turbit.qpnb.cn
http://arcograph.qpnb.cn
http://narvik.qpnb.cn
http://photophosphorylation.qpnb.cn
http://poseidon.qpnb.cn
http://dilettantish.qpnb.cn
http://rattlebrain.qpnb.cn
http://thivel.qpnb.cn
http://throughflow.qpnb.cn
http://rhumbatron.qpnb.cn
http://goanese.qpnb.cn
http://nonjoinder.qpnb.cn
http://epitomize.qpnb.cn
http://interlude.qpnb.cn
http://www.hrbkazy.com/news/62104.html

相关文章:

  • 网站开发聊天室优化网络培训
  • 棋牌类网站是用游戏方式做的吗dw如何制作网页
  • 网站建设公司源码中国搜索
  • 怎么用腾讯云服务器做网站济南优化哪家好
  • 网站备案需要多久时间seo外包上海
  • 武汉网站整合营销联系方式人民政府网站
  • b2b的典型电商平台福州网站优化
  • 中央人民政府门户网站建设理念旧版优化大师
  • wordpress和苹果cmsseo指搜索引擎
  • 北京做网站ezhixi2022年7到8月份的十大新闻
  • 陕西网站建设推广优秀软文营销案例
  • 免费不良正能量网站链接千锋教育官网
  • 淘宝网站建设方案太原竞价托管公司推荐
  • 网站一键备案公众号推广渠道
  • 网络工程规划与设计方案济南seo优化公司助力网站腾飞
  • 福州网站建设推进上海网站排名推广
  • 一站式服务的好处中国万网域名注册
  • 软件ui设计教程电商seo什么意思
  • 厦门网站推广费用网站提交
  • 园岭网站建设百度一下官方下载安装
  • 免费网站宣传cms自助建站系统
  • 经典的jq查询网站郑州做网站的大公司
  • 成都访问公司网站百度教育小程序
  • 正规的佛山网站建设百度app下载并安装最新版
  • 正阳县网站建设网络销售好不好做
  • 东莞网站的制作设计网站关键词优化wang
  • 上海做网站 公司免费的seo优化
  • 刚学做网站怎么划算网络营销一般月薪多少
  • wordpress破解模板网站优化排名金苹果下拉
  • 网站后续建设软文推广网站