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

体育网站建设规划宜兴网站优化

体育网站建设规划,宜兴网站优化,wordpress mywiki,wordpress 用户是否登陆目录 题1.删除链表中的某个元素val题目表述:思路1:在源链表中进行删除更改思路2:创建一个新链表 题2:反转一个链表问题描述:思路1:在源链表内部进行操作思路2:创建一个新链表 题3:寻找链表中间位置题目描述:思路1:思路2:快慢指针 题1.删除链表中的某个元…

目录

  • 题1.删除链表中的某个元素val
    • 题目表述:
    • 思路1:在源链表中进行删除更改
    • 思路2:创建一个新链表
  • 题2:反转一个链表
    • 问题描述:
    • 思路1:在源链表内部进行操作
    • 思路2:创建一个新链表
  • 题3:寻找链表中间位置
    • 题目描述:
    • 思路1:
    • 思路2:快慢指针

题1.删除链表中的某个元素val

题目表述:

在这里插入图片描述

思路1:在源链表中进行删除更改

1.利用循环遍历链表

2.在遇到要删除的元素时,将该节点后的节点地址保存到要删除的节点前的节点内部。

3.保证新链表的末尾地址内指向的下一个节点的地址为空指针。

3.返回源链表的首节点地址。
这个比较简单,就不再演示了。

思路2:创建一个新链表

需要的数据:新链表的首地址以及𮧵地址,源文件的首节点地址

1.利用循环遍历整个链表

2.在遍历链表,链表的地址逐一传给新链表,遇到要删除的数据,不传给新链表,将源链表地址向后移位一个节点

3.保证新链表的末尾地址内指向的下一个节点的地址为空指针。

4.返回新链表的首节点地址。
代码实现:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/typedef struct ListNode ListNode;
struct ListNode* removeElements(struct ListNode* head, int val) {ListNode* newhead=NULL,*newtail=NULL;ListNode* pcur =head;while(pcur){if(pcur->val!=val){if(newhead==NULL){newhead=newtail=pcur;}else{newtail->next=pcur;newtail=newtail->next;}}pcur=pcur->next;}if(newtail){newtail->next=NULL;}return newhead;
}

题2:反转一个链表

问题描述:

在这里插入图片描述
案例:
在这里插入图片描述

思路1:在源链表内部进行操作

1.创建三个变量ps1,ps2,ps3
2.将ps1设为NULL,ps1指向第一个节点位置,ps2指向ps1下一个节点:ps2=ps1->next
具体如图:
在这里插入图片描述

4.返回链表的头结点地址。
代码实现:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/typedef struct ListNode ListNode;
struct ListNode* reverseList(struct ListNode* head) {if(head==NULL){return head;}ListNode* ps1,*ps2,*ps3;ps1=NULL;ps2=head;ps3=ps2->next;while(ps2){ps2->next=ps1;ps1=ps2;ps2=ps3;if(ps2)ps3=ps2->next;}return ps1;
}

这个思路不太好描述,可能描述出来不太好理解,但是直到这个思路的会发现它其实跟创建一个新链表,然后让节点一个一个头插到新链表里面的思路相似,所以就引出了我们的思路2.

思路2:创建一个新链表

数据需求:创建两个指针,一个指向头结点,一个指向尾节点。

1.利用循环遍历数组

2.将每个节点头插到新链表

3.将新链表的尾节点内指针置为空指针

4.返回新链表的头结点地址
代码实现:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/typedef struct ListNode ListNode;
struct ListNode* reverseList(struct ListNode* head) {if(head==NULL){return head;}ListNode* ,*newtail;newhead=newtail=NULL;ListNode* pcur=head;while(pcur){if(newhead  ==NULL){newhead =newtail=pcur;pcur=pcur->next;}else{ListNode* ps=pcur->next;pcur->next=newhead;newhead=pcur;pcur=ps;}}newtail->next=NULL;return newhead;
}

题3:寻找链表中间位置

题目描述:

在这里插入图片描述
示例:
在这里插入图片描述

思路1:

1.遍历一遍链表,统计链表节点个数

2.将链表节点数目除2,找到中间节点的位置

3.第二次遍历链表,找到中间位置的节点并返回该节点的地址。
这个思路很简单,有兴趣的下去可以自行尝试一下。

思路2:快慢指针

1.定义两个指针,同时指向头结点

2.一个指针向后移位一个节点,一个指针向后移位两个节点,以此类推,当快节点走到末尾节点时,第一个节点就刚好停在了中间节点的位置,在这里分两种情况,节点数目为奇数或者偶数:

1.节点数目为奇数:

2.节点数目为偶数:

3.返回慢指针的地址

代码实现:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/struct ListNode* middleNode(struct ListNode* head) {struct ListNode* ps1,*ps2;ps1=ps2=head;while(ps2&&ps2->next){ps1=ps1->next;ps2=ps2->next->next;   }return ps1;
}

快慢指针理解图示:

在这里插入图片描述
由上图可知,循环结束的条间为ps为空或者ps->next为空,所以他们都不为空时循环继续。
但是循环判断条件前后顺序不可更改。
当ps2为空时,ps2->next就会对空指针解引用,会报错。
---------------------------------------------------------------------------分隔符
有错请在评论区指正,谢谢
本次介绍就结束了,编写不易,看官老爷们赏个三连吧。


文章转载自:

http://uCRxWC9x.tqpnf.cn
http://XquyF7NH.tqpnf.cn
http://GfaFOmfC.tqpnf.cn
http://P1ZeBSAx.tqpnf.cn
http://BqG2Awwu.tqpnf.cn
http://GkkLLwax.tqpnf.cn
http://EToLbupc.tqpnf.cn
http://4YgKiiCP.tqpnf.cn
http://a1MG2DeW.tqpnf.cn
http://Q8K4WG0g.tqpnf.cn
http://MA3KhQZ0.tqpnf.cn
http://gnFhhh5T.tqpnf.cn
http://LsTcNlMA.tqpnf.cn
http://nvlsOY0o.tqpnf.cn
http://JoOtMT55.tqpnf.cn
http://lEzWuSXw.tqpnf.cn
http://mcDMLViT.tqpnf.cn
http://GjPXHVx0.tqpnf.cn
http://gWlFpQYQ.tqpnf.cn
http://hBi2GLeQ.tqpnf.cn
http://LLmDBBqz.tqpnf.cn
http://FmA5rl9U.tqpnf.cn
http://J62zlTNf.tqpnf.cn
http://W3o19b1k.tqpnf.cn
http://MVc20Aav.tqpnf.cn
http://2fGbB4fr.tqpnf.cn
http://OM38bjFW.tqpnf.cn
http://SLyEGDdS.tqpnf.cn
http://jbur8AiT.tqpnf.cn
http://mSB6r0BL.tqpnf.cn
http://www.dtcms.com/wzjs/759281.html

相关文章:

  • 网站系统返利网站开发代码
  • 网站的定位姓名查询
  • 外贸接单十大网站建筑工程公司经营范围
  • 廊坊网站建设方案开发做数据收集网站
  • 网站建设达到什么水平梦里做他千百度网站
  • 长沙网站设计域名备案和网站备案有什么区别
  • 保定模板建站平台潍坊高端网站建设价格
  • 手机网站模板免费下载wordpress 4 drupal 8
  • 5188站长平台万网域名续费查询
  • 广州网站建设商家如何免费创建一个个人网站
  • 芜湖十大企业排名网站推广优化方式
  • 甘肃网站建设哪家便宜wordpress级简主题
  • 网站内容更新用什么wordpress自定义字段判断
  • 网站建设主要课程wordpress树形目录
  • 营销软文的范文郑州企业网站快速优化价格
  • ps做好切片后怎么做网站阿里巴巴官网卖家版
  • 重庆建设网站的公司简介目前引流最好的app
  • 电子商务网站建设实训展示昆明网站排名优化价格
  • 北京建设工程协会网站做营销策划要用到哪些网站
  • word网站流程图怎么做宣传类的网站有哪些内容
  • app网站模板下载网页设计师证书报名官网
  • 模拟建设网站天津站设计单位
  • wordpress创建数据库类型选什么seo是什么意思为什么要做seo
  • 南宁seo网站推广服务辽宁建设工程信息网地址
  • 哪里有门户网站开发机器配件做外贸上什么网站
  • 做网站推广被骗17网站一起做网
  • 重庆高端网站开发免费国外ddos网站
  • 温州网站建设温州网站制作做网站策划用什么软件
  • 惠州做网站的公司九一人才网
  • 易语言的网站开发系统东营建设网站公司