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

重庆旅游seo整站优化青岛seo整站优化

重庆旅游seo整站优化,青岛seo整站优化,想给公司做个网站,ecshop做的网站leetcode Hot 100系列 文章目录 一、翻转链表二、反转链表 II三、K 个一组翻转链表总结 一、翻转链表 建立pre为空,建立cur为head,开始循环:先保存cur的next的值,再将cur的next置为pre,将pre前进到cur的位置&#xf…

leetcode Hot 100系列

文章目录

  • 一、翻转链表
  • 二、反转链表 II
  • 三、K 个一组翻转链表
  • 总结


一、翻转链表

  1. 建立pre为空,建立cur为head,开始循环:先保存cur的next的值,再将cur的next置为pre,将pre前进到cur的位置,再将cur往前进一步(利用刚刚保存的值),直到cur为nullptr

代码如下:

class Solution {
public:ListNode* reverseList(ListNode* head) {ListNode* cur=head;ListNode* pre=nullptr;while (cur!=nullptr){ListNode* temp=cur->next;cur->next=pre;pre=cur;cur=temp;}return pre; }
};

提示:小白个人理解,如有错误敬请谅解!

二、反转链表 II

  1. 这个和上面的区别就是从left开始,为了防止left为head,这样就没有p0了,所以要加入dummyhead,并且将dummyhead和head连起来
  2. 先要找到left位置的前一个作为p0,然后继续上面的操作,初始化pre为空,cur为p0的next,然后开始循环(循环的次数就是要翻转的个数):先保存cur的next位置,再将cur的next指向pre,随后pre到cur的位置,最后cur到之前保存的cur的next位置上,循环结束了之后,将p0的next的next指向cur,再才能将p0的next指向pre(如果这两个顺序反了,那由于先改变了p0的next的位置,再修改p0的next的next的时候,指向的位置就已经变了)
    代码如下:
class Solution {
public:ListNode* reverseBetween(ListNode* head, int left, int right) {ListNode* dummyhead=new ListNode(0);dummyhead->next=head;ListNode* p0=dummyhead;int m=left;m--;while (m--){   p0=p0->next;}ListNode* pre=nullptr;ListNode* cur=p0->next;int n=right-left+1;while (n--){ListNode* temp=cur->next;cur->next=pre;pre=cur;cur=temp;}p0->next->next=cur;p0->next=pre;return dummyhead->next;}
};

三、K 个一组翻转链表

  1. 设置dummyhead,并且令p0为dummyhead,这样p0才是要翻转的链表的前一个
  2. 由于k组翻转链表,所以要先统计一下一共有多少个,每次循环(翻转了k个链表)就将这个总数减k,然后看剩下的值到不到k,如果到了才能继续进行循环
  3. 设置pre为空,cur为p0的next,开始小循环,最后结束之后,先要保存一下p0的next作为下一个要翻转的链表的p0,然后再继续之前的操作,将p0的next的next置为cur,再将p0的next置为pre,最后将p0设置为之前保存的p0的next值,由下图中可知对于下一组k的链表来说,他们的p0应该是 1 这个节点,也就是最开始保存的保存的p0的next

    图源@灵茶山艾府
  4. 返回dummyhead的next
    代码如下:
class Solution {
public:ListNode* reverseKGroup(ListNode* head, int k) {ListNode* dummyhead=new ListNode(0);dummyhead->next=head;ListNode* curr=head;int count=0;while (curr!=nullptr){curr=curr->next;count++;}ListNode* p0=dummyhead;while (count>=k){   count-=k;ListNode* pre=nullptr;ListNode* cur=p0->next;int m=k;while (m--){ListNode* temp=cur->next;cur->next=pre;pre=cur;cur=temp;}ListNode* nxt=p0->next;p0->next->next=cur;p0->next=pre;p0=nxt;}return dummyhead->next;}
};

总结

  1. pre统一设置为空,cur设置为p0的next,使用临时变量接受cur的next,最后要更新p0的位置!
http://www.dtcms.com/wzjs/452131.html

相关文章:

  • 手机网站建站系统seoul怎么读
  • 邢台做网站的公司一键生成原创文案
  • 做的网站有营销效果吗市场营销的对象有哪些
  • p2p系统网站开发手机怎么建立网站
  • 白山市城乡建设局网站抖音seo优化系统招商
  • 潍坊知名网站建设怎么收费值得收藏的五个搜索引擎
  • 创联互动建设网站上海aso
  • 网站时间显示草根seo博客
  • 编程教程免费视频长沙seo服务哪个公司好
  • 西安市城乡建设档案馆网站武汉seo计费管理
  • 部门网站建设的意义网络安全培训最强的机构
  • gta5此网站正在建设关键词优化公司哪家推广
  • 网站建设域名什么意思足球比赛统计数据
  • 红塔网站制作万江专业网站快速排名
  • 做网站 用什么语言好网络营销的作用和意义
  • 嘉兴网站建设嘉兴网站推广百度网站怎么优化排名靠前
  • 音乐网站怎么做无线增值业务批量查询神马关键词排名
  • 海口网站运营托管报价谷歌搜索引擎为什么打不开
  • 做网站接单渠道百度文库首页
  • 绚丽网站短视频营销方式有哪些
  • 网站推广的建议什么是网站推广策略
  • 效果好的免费网站建设绍兴seo推广
  • javaee做网站建设营销策略分析论文
  • ie9网站后台编辑器推广官网
  • vps做电影网站百度搜索排行榜前十名
  • 陕西省市建设委员会网站哈尔滨网络优化推广公司
  • 新建的网站打不开职业技能培训网上平台
  • 昆山建设局网站查预售公司网页制作流程
  • 地方门户类网站湖南 seo
  • 网站制作中搜索栏怎么做百度指数批量获取