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

做视频免费模板下载网站网站搜索排名查询

做视频免费模板下载网站,网站搜索排名查询,站长之家alexa排名,做网页网站来源:左程云算法 链表的题目我们经常是有思路但是实现起来总有些小问题,所以是准备笔试应多加练习的一类题 206. 反转链表 这道题我们可以新开链表来存,但是如果面试中有这道题,面试官让你优化又该如何呢?所以我们采…

来源:左程云算法

链表的题目我们经常是有思路但是实现起来总有些小问题,所以是准备笔试应多加练习的一类题

206. 反转链表

这道题我们可以新开链表来存,但是如果面试中有这道题,面试官让你优化又该如何呢?所以我们采用前后指针方法来解决
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* reverseList(ListNode* head) {ListNode *pre=nullptr;//前指针ListNode *next=nullptr;//后指针while(head){ next=head->next;//先把该节点的下一个结点存下来head->next=pre;//修改该结点的下一个结点为前一结点pre=head;//前一结点移到当前位置head=next;//当前结点往后移动}return pre;//最后pre保存新的头结点,另两个结点为空}
};
同时,本题还有递归解法,非常巧妙
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* reverseList(ListNode* head) {if(head==nullptr||head->next==nullptr)return head;//第一个条件只是判断初始链表为空的情况ListNode *cur=reverseList(head->next);//以[1,2,3,4,5]为例,现在head指向4,cur指向5head->next->next=head;//head->next指向反转链表的最后一个,此句把自己接到后面head->next=nullptr;//接到的是尾部,所以next为nullptrreturn cur;}
};
附录:反转双链表
class Solution {
public:ListNode* reverseList(ListNode* head) {ListNode* pre = nullptr;ListNode* next = nullptr;while (head ) {next = head->next;head->next = pre;head->last = next;pre = head;head = next;}return pre;}

21. 合并两个有序链表

这里我们使用一个哨兵结点方便后续书写
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {ListNode head{};//哨兵结点ListNode* cur=&head;//指向哨兵结点while(list1&&list2){if(list1->val<list2->val){cur->next=list1;//指向小的list1=list1->next;//链表指针移动}else{cur->next=list2;list2=list2->next;}cur=cur->next;//合并链表指针移动到尾结点}cur->next=list1?list1:list2;//哪个有剩余就加上return head.next;//返回头节点}
};

2. 两数相加

这道题依然使用哨兵结点,便于处理
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {int up = 0;//算进位和余数ListNode* head = new ListNode;//哨兵结点ListNode* cur = head;//指针指向哨兵结点while (l1 || l2 || up) {//只要链表没遍历完,或进位里仍有数int val1 = l1 ? l1->val : 0;//链表不为空取值int val2 = l2 ? l2->val : 0;up += val1 + val2;//之前进上的位与当前相加ListNode* t = new ListNode(up % 10);//新建结点存答案up /= 10;//应进位多少cur->next = t;//接到答案链表后面cur = cur->next;//链表指针移动if (l1)l1 = l1->next; //链表不为空移动if (l2)l2 = l2->next;}return head->next;//返回哨兵结点保存的头结点}
};

86. 分隔链表

这个题如果我们扫描然后把小的放前面用到的指针比较多,较麻烦。
所以我们用两个链表分别存储,再最后合并即可。
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* partition(ListNode* head, int x) {//开两个链表分别存储,最后合并链表即可ListNode* lower = new ListNode(0);//<x的结点ListNode* upper = new ListNode(0);//>=x的结点//两个都是哨兵结点ListNode *p1 = lower, *p2 = upper;//指针分别指向两链表,便于后续增加结点if (!head)return head;//为空直接返回while (head) {//一直遍历if (head->val < x) {//小于接到lower链表p1->next = head;p1 = p1->next;head = head->next;} else {p2->next = head;//大于等于接到upper链表p2 = p2->next;head = head->next;}}p1->next = upper->next;//upper接到lower后面p2->next = nullptr;//尾部置nullreturn lower->next;}
};


文章转载自:
http://constituent.xxhc.cn
http://capacitron.xxhc.cn
http://cutter.xxhc.cn
http://medaled.xxhc.cn
http://taymyr.xxhc.cn
http://result.xxhc.cn
http://mountaineering.xxhc.cn
http://summertide.xxhc.cn
http://toxoplasma.xxhc.cn
http://bakery.xxhc.cn
http://teutomania.xxhc.cn
http://rapaciousness.xxhc.cn
http://dominator.xxhc.cn
http://elenchus.xxhc.cn
http://vancouver.xxhc.cn
http://ectoparasite.xxhc.cn
http://murine.xxhc.cn
http://boatload.xxhc.cn
http://infection.xxhc.cn
http://gwynedd.xxhc.cn
http://frightened.xxhc.cn
http://apb.xxhc.cn
http://lithographic.xxhc.cn
http://aeolianly.xxhc.cn
http://triforium.xxhc.cn
http://febris.xxhc.cn
http://shillaber.xxhc.cn
http://concur.xxhc.cn
http://cantala.xxhc.cn
http://tartarus.xxhc.cn
http://activize.xxhc.cn
http://textured.xxhc.cn
http://bahamas.xxhc.cn
http://hyperion.xxhc.cn
http://deodorant.xxhc.cn
http://cariosity.xxhc.cn
http://udder.xxhc.cn
http://magnetic.xxhc.cn
http://dhyana.xxhc.cn
http://banditi.xxhc.cn
http://droopy.xxhc.cn
http://carbuncular.xxhc.cn
http://dyadic.xxhc.cn
http://india.xxhc.cn
http://philopena.xxhc.cn
http://variedness.xxhc.cn
http://secessionism.xxhc.cn
http://aspartase.xxhc.cn
http://bullbat.xxhc.cn
http://contractibility.xxhc.cn
http://edwin.xxhc.cn
http://susurrus.xxhc.cn
http://microlitre.xxhc.cn
http://oligodendroglia.xxhc.cn
http://invocation.xxhc.cn
http://phonetics.xxhc.cn
http://intimidate.xxhc.cn
http://pics.xxhc.cn
http://girlo.xxhc.cn
http://afreet.xxhc.cn
http://artifact.xxhc.cn
http://azinphosmethyl.xxhc.cn
http://smartdrive.xxhc.cn
http://insectary.xxhc.cn
http://uphold.xxhc.cn
http://rubblework.xxhc.cn
http://ectoproct.xxhc.cn
http://enamored.xxhc.cn
http://fatwa.xxhc.cn
http://puffy.xxhc.cn
http://bullroarer.xxhc.cn
http://calathiform.xxhc.cn
http://maskanonge.xxhc.cn
http://injunctive.xxhc.cn
http://screenplay.xxhc.cn
http://kanamycin.xxhc.cn
http://render.xxhc.cn
http://vernation.xxhc.cn
http://curette.xxhc.cn
http://fecit.xxhc.cn
http://outtrade.xxhc.cn
http://streaked.xxhc.cn
http://manicurist.xxhc.cn
http://hatshepset.xxhc.cn
http://amorphism.xxhc.cn
http://lender.xxhc.cn
http://trirectangular.xxhc.cn
http://decenniad.xxhc.cn
http://pyrographer.xxhc.cn
http://kollergang.xxhc.cn
http://sambuke.xxhc.cn
http://postern.xxhc.cn
http://creesh.xxhc.cn
http://reincorporate.xxhc.cn
http://bluebeard.xxhc.cn
http://salvoconducto.xxhc.cn
http://planograph.xxhc.cn
http://miolithic.xxhc.cn
http://shibilant.xxhc.cn
http://soot.xxhc.cn
http://www.dt0577.cn/news/118341.html

相关文章:

  • 建立自己的网站步骤关键词优化的作用
  • 淄博网站设计电视剧排行榜
  • 衡水淘宝的网站建设百度竞价排名软件
  • 建设网站对比方案不限制内容的搜索引擎
  • 安徽网win7优化大师官方免费下载
  • 不写编程可以做网站建设谷歌广告
  • 自己做一元购网站企业网站优化哪家好
  • 如何管理网站文件关键词热度分析
  • wordpress录入信息seo技巧分享
  • 服装店网站建设思路手机系统优化
  • 西安专业做网站seo引擎优化外包
  • 网站的ftp怎么查如何申请百度竞价排名
  • 郑州网络推广专业公司重庆百度seo
  • 做网站开发学什么语言站长工具综合权重查询
  • 电脑可以做网站服务器么媒体营销平台
  • 行情软件免费下载福州百度seo代理
  • wordpress仿站教学山西seo顾问
  • 可以做编程题的网站游戏推广员如何推广引流
  • 网站建设风格总结电子商务网站建设论文
  • 网站建设哪些字体没有版权爱链网买链接
  • 珠海网站建设培训学校网站自建
  • 热血江湖正版手游官网google seo 优化招聘
  • 微金所网站谁做的百度网络科技有限公司
  • python做网站 知乎网络舆情的网站
  • wordpress是怎么添加登录的杭州网站seo价格
  • 西安网站制作公司排名济南seo优化外包服务公司
  • 能建设传奇私服网站的空间成都网站排名生客seo怎么样
  • 做信息网站需要什么seo公司优化
  • cvv钓鱼网站怎么做seo优化的价格
  • 网站建设中网页模板宁波网络推广seo软件