当前位置: 首页 > 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://www.yidumall.com/news/18421.html

相关文章:

  • 搜搜提交网站入口中国免费网站服务器2020
  • 番禺制作网站报价句容市网站seo优化排名
  • 微网站建设找哪家公司市场营销公司排名
  • 网站开发员招聘seo基础入门
  • 商城网站建设 上海磁力蜘蛛搜索引擎
  • 诸城做网站建设的东莞网络科技公司排名
  • 企业网站优化包括哪三个层面全网营销推广怎么做
  • 北京做网站优化周口网站seo
  • 有哪些网站做返利模式互联网推广员是做什么的
  • 做外包装很厉害的网站怎么在百度上打广告
  • 做网站应该做到那几点东莞营销推广公司
  • 浅谈做网站的好处seo 优化教程
  • 深圳都信建设监理有限公司网站seo营销技巧
  • 长春建设集团股份有限公司网站app推广怎么做
  • 网站研发流程seo价格是多少
  • 大淘客做网站福州百度seo排名
  • 网站建设都是模板网络营销策划ppt范例
  • 游戏网站建设一条龙seo的培训班
  • 小程序sdk开发青岛seo网站建设公司
  • 网站的目标百度权重工具
  • 温州做网站建设哪家好朝阳seo推广
  • 做快递单的网站会不会是骗人的十大接单平台
  • 地方网站不让做吗朝阳区seo搜索引擎优化怎么样
  • 阿里云网站建设套餐外链系统
  • 企业购网站建设徐州seo外包平台
  • 做定制的网站深圳做网站的公司有哪些
  • 移动端网站开发语言杭州企业seo
  • 怎么样评价网站做的好坏学电商哪个培训学校好
  • 江苏城嘉建设工程有限公司网站网站推广怎么做有效果
  • 做网站广告软件购买链接怎么买