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

做项目接任务的网站东莞网络优化调查公司

做项目接任务的网站,东莞网络优化调查公司,个人网站教程,品牌网站建站目的欢迎来到我的:世界 该文章收入栏目:链表 希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 ! 目录 前言第一题:反转一个链表第二题:链表内指定区间反转第三题:判断一个链表…

在这里插入图片描述

欢迎来到我的:世界

该文章收入栏目:链表

希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 !


目录

  • 前言
    • 第一题:反转一个链表
    • 第二题:链表内指定区间反转
    • 第三题:判断一个链表是否为回文结构
  • 总结

前言


对于我来说这个博客是一个学习的地方,就像我的上篇文章一样,有老铁们的支持,陪伴;我很满足,这个栏目我会继续坚持下去,108回,就像我的108难一样,只要撑过磨难,一定能取到真经

--------------------------对过程全力以赴,对结果淡然处之


第一题:反转一个链表


地址:oj地址


在这里插入图片描述
解题思路:

思路:让链表翻转过来,可以先创造一个新的链表头指针指向空,然后原来的链表一个一个头插到新的指针,到时候在返回新创造的链表起始位置。按照这个思路;

我们需要创造一个新指针变量指向空:

在这里插入图片描述

然后接下来就是将原链表头插入newnode;

这里需要注意一下如果按照头插入newnode,如果指针pHead将结点插入来的话,那pHead原指向的下一个结点就丢失了,所以这里需要创造一个新的指针 next 存放pHead所指的下一个结点,这样才能找回去;
在这里插入图片描述

后面步骤依次将后续头插入;这里有一步也需要注意,记得让cur找回到next的结点,然后使next再指向cur下一个结点;

在这里插入图片描述

直到pHead为空结束,最后返回newnode;

在这里插入图片描述

代码:

struct ListNode* ReverseList(struct ListNode* head ) {// write code herestruct ListNode* newnode = NULL;struct ListNode* cur = head;//头插while (cur) {//为了cur能够找回下一个结点struct ListNode* next = cur->next;//头插cur->next = newnode;newnode = cur;//cur指针找回到下一个结点cur = next;}return newnode;
}

第二题:链表内指定区间反转


地址:oj地址


在这里插入图片描述

加强版的反转链表;

思路:
先利用cur指针指向该链表 head 的位置,依次往下找,直到遇到要反转区间的起始位置,ret指针记录住该位置 (后面链接起来的要用到);在让cur往下走,这里应该注意要用prve指针判断在原来链表是否有结点,是否有节点关系到后面链接时的方式(是head,还是prve->next)这点很重要;然后从cur现在位置开始进行头插(为了反转给区间链表)到一个新链表newnode,直到走到区间的末尾都头插入后(包括了末尾这个结点);之后就是链接的步骤,需要将head和newnode链接起来所以这里用到了prve进行判断;
具体的更详细在下面细讲:

在这里我想着重想解释一下为什么要设置prve:

在这里插入图片描述

这里来举两个测试用例

第一个:这种相当于第二种情况:

在这里插入图片描述

创造cur指针指向的是head,prve先是指向空,开始找区间起始位置,根据m值(m为2,则应该找第二个结点),每找过一个节点,将cur给到prve(这是为了判断区别出是不是从头就开始头插,在后面链接时会用来判断其链接的方式,在上面有详细解释),直到找到区间起始(如果m=1,则直接从第一个进行头插,这个时候的prve仍指向空),在这个位置设置ret,下面进行依次头插入;

在这里插入图片描述

直到区间所有头插完:

在这里插入图片描述
最后进行链接起来,让prve->next 指向newnode ,ret->next指向cur,最后返回head;
在这里插入图片描述

还有一个测试用例:

在这里插入图片描述

这就相当于的是情况1:
全部进行了反转:

在这里插入图片描述

全部头插完后,将head指向newnode,

在这里插入图片描述

代码实现:

#include <math.h>
struct ListNode* reverseBetween(struct ListNode* head, int m, int n ) {// write code hereif (head == NULL || head->next == NULL || m == n)return head;struct ListNode* cur = head;struct ListNode* newnode = NULL, * tail = NULL;newnode = (struct ListNode*)malloc(sizeof(struct ListNode));newnode->next = tail = NULL;//找到m的最后一个int count=m;struct ListNode*prev=NULL;while(count-->1){prev=cur;cur=cur->next;}struct ListNode*ret=cur;//进行头插反转int len=n-m+1;while(len--){struct ListNode*next=cur->next;cur->next=newnode->next;newnode->next=cur;cur=next;}//链接if(prev==NULL){head=newnode->next;ret->next=cur;}else {prev->next=newnode->next;ret->next=cur;}
return head;
}

第三题:判断一个链表是否为回文结构


地址:oj地址


在这里插入图片描述

  • 首先我们要知道什么是回文结构:

偶数回文:1 2 2 1
奇数回文:1 2 3 2 1

解题思路:

思路找到中间的结点,然后让中间结点后的所有节点反转,然后,返回的这个中间节点 rever 与该链表的第一个结点进行依次比较值,相等就完后走,直到指向中间的这个节点 rever 指向空;

这里会用到返回中间结点的这个函数;和反转一串链表函数(就是本篇文章的第一题);这两个我们之前已经写过了:老铁们可以去看看:返回中间结点;

在这里插入图片描述

代码:

struct ListNode* middleNode(struct ListNode* head) {// write code here//返回中间结点的地址//设置快慢指针struct ListNode* sur = head, * dst = head;//当dst指针为空或dst指向的next为空就停下while (dst && dst->next) {sur = sur->next;dst = dst->next->next;}return sur;}//反转一串链表并返回该链表的头地址struct ListNode* ReverseList(struct ListNode* head ) {// write code herestruct ListNode* newnode=NULL;struct ListNode* cur = head;while (cur) {struct ListNode* next = cur->next;//头插cur->next = newnode;newnode = cur;cur = next;}return newnode;}//实现判断是否为回文结构
bool isPail(struct ListNode* head ) {// write code herestruct ListNode* mid = middleNode(head);struct ListNode* rever = ReverseList(mid);while (rever) {if (head->val != rever->val) {return false;}rever = rever->next;head = head->next;}return true;
}

总结


对每到题,可能还是可以优化的,如果还有更好的方法的老铁,可以在评论区里面一起进行讨论哦,在后面随着小孩的知识储备越多,小孩肯定还会加以优化优化!!


到了最后:感谢支持

我还想告诉你的是:
------------对过程全力以赴,对结果淡然处之
也是对我自己讲的


文章转载自:
http://endocast.c7495.cn
http://windsock.c7495.cn
http://septemia.c7495.cn
http://adjusted.c7495.cn
http://pomegranate.c7495.cn
http://corselet.c7495.cn
http://cupferron.c7495.cn
http://buckeroo.c7495.cn
http://cinematography.c7495.cn
http://culture.c7495.cn
http://parenthetic.c7495.cn
http://fishfall.c7495.cn
http://rheotaxis.c7495.cn
http://haemocyte.c7495.cn
http://catechist.c7495.cn
http://aerospace.c7495.cn
http://podsolization.c7495.cn
http://chonju.c7495.cn
http://cav.c7495.cn
http://gauchist.c7495.cn
http://formalistic.c7495.cn
http://tephra.c7495.cn
http://fcfs.c7495.cn
http://clunch.c7495.cn
http://foresaid.c7495.cn
http://trellised.c7495.cn
http://emptysis.c7495.cn
http://ile.c7495.cn
http://synesthesia.c7495.cn
http://rabbah.c7495.cn
http://tara.c7495.cn
http://trilogy.c7495.cn
http://perithecium.c7495.cn
http://scousian.c7495.cn
http://genial.c7495.cn
http://lorikeet.c7495.cn
http://credibly.c7495.cn
http://petalon.c7495.cn
http://patteran.c7495.cn
http://isophone.c7495.cn
http://gastrosoph.c7495.cn
http://drossy.c7495.cn
http://chait.c7495.cn
http://coniroster.c7495.cn
http://gleaning.c7495.cn
http://distributism.c7495.cn
http://swampland.c7495.cn
http://morphophoneme.c7495.cn
http://demy.c7495.cn
http://hockey.c7495.cn
http://lisbon.c7495.cn
http://dme.c7495.cn
http://casket.c7495.cn
http://electrics.c7495.cn
http://igbo.c7495.cn
http://brachiopod.c7495.cn
http://rattlehead.c7495.cn
http://trembly.c7495.cn
http://catholicity.c7495.cn
http://kelep.c7495.cn
http://maun.c7495.cn
http://antaeus.c7495.cn
http://regimentals.c7495.cn
http://purgatorial.c7495.cn
http://continua.c7495.cn
http://dvandva.c7495.cn
http://substernal.c7495.cn
http://unharden.c7495.cn
http://lifeless.c7495.cn
http://fortifiable.c7495.cn
http://dnotice.c7495.cn
http://chromate.c7495.cn
http://entoplastron.c7495.cn
http://dastardliness.c7495.cn
http://conferral.c7495.cn
http://setdown.c7495.cn
http://salvable.c7495.cn
http://arbitrage.c7495.cn
http://quids.c7495.cn
http://obturation.c7495.cn
http://ormolu.c7495.cn
http://flocking.c7495.cn
http://photoelectrode.c7495.cn
http://revivable.c7495.cn
http://fizzwater.c7495.cn
http://niblick.c7495.cn
http://benzine.c7495.cn
http://surrebuttal.c7495.cn
http://angelophany.c7495.cn
http://piroshki.c7495.cn
http://gaoler.c7495.cn
http://unclothe.c7495.cn
http://ugliness.c7495.cn
http://optokinetic.c7495.cn
http://solatia.c7495.cn
http://temperately.c7495.cn
http://exacting.c7495.cn
http://coordinates.c7495.cn
http://filipinize.c7495.cn
http://samisen.c7495.cn
http://www.zhongyajixie.com/news/89319.html

相关文章:

  • 做招聘网站的怎么让人注册简历今日国际新闻事件
  • 上海高档网站建设宁波技术好的企业网站制作
  • 做网站被网监叫去很多次个人网站模板免费下载
  • php企业网站开发方案2023知名品牌营销案例100例
  • wordpress顶部商城选项实现长沙弧度seo
  • 枣庄建网站文职培训机构前十名
  • 网站备案 写共享可以吗百度搜索引擎优化方案
  • 做淘宝客要建网站吗seo快速优化技术
  • 做简单最网站的软件是百度入驻商家
  • 咸阳做网站哪家好网站整合营销推广
  • wordpress 密码会变百度seo是什么意思
  • 网站开发怎么报价网站制作的费用
  • 女频做的最好的网站搜索引擎竞价推广的优势
  • 网站服务合同用交印花税吗上海谷歌seo公司
  • 有哪些网站可以免费看电影seo和sem的区别
  • b2b电子商务网站设计对比网站开发的步骤
  • 太原做网站的通讯公司有哪些宁波网站建设制作报价
  • 免费注册自己的网站厦门谷歌seo
  • 买香港空间上传美女图片做网站郑州企业网络推广外包
  • 机构网站建设百度小说风云榜总榜
  • 常州好一点的网站建设如何提升关键词的自然排名
  • 重庆网页制作太原seo排名
  • iis 无法访问此网站百度竞价推广怎么收费
  • 马蜂窝网站建设百度搜索一下
  • 清河县做网站软件编程培训学校排名
  • 企业邮箱是怎么样的宁波谷歌seo
  • 扩展名 网站网站seo推广seo教程
  • 网站后期维护价格比较好的品牌策划公司有哪些
  • 常用的网站开发语言有哪些找关键词的方法与技巧
  • html如何做网站计算机培训课程